捕获列表中的“ k”未命名变量

时间:2019-02-23 15:02:46

标签: c++ lambda closures c++17

嗨,堆栈溢出社区!

我想知道为什么这段代码不能用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不是变量,它是什么?

0 个答案:

没有答案