嗨,堆栈溢出社区!
我想知道为什么这段代码不能用C ++ 17编译
std::unordered_map<int, int> a;
for (const auto& [k, v]: a) {
auto l = [k] () {};
}
捕获列表中的错误“ k”未命名变量”。
但这编译得很好
std::unordered_map<int, int> a;
for (const auto& [k, v]: a) {
auto l = [k = k] () {};
}
如果[k,v]中的k不是变量,它是什么?