编译器错误 C3480
“var”:lambda 捕获变量必须来自封闭函数范围
Lambda 捕获变量不是来自封闭函数范围。
更正此错误
- 从 lambda 表达式的捕获列表中删除该变量。
示例
下面的示例将生成 C3480,因为变量 global
不是来自封闭函数范围:
// C3480a.cpp
int global = 0;
int main()
{
[&global] { global = 5; }(); // C3480
}
下面的示例通过从 lambda 表达式的捕获列表中删除变量 global
来解决 C3480:
// C3480b.cpp
int global = 0;
int main()
{
[] { global = 5; }();
}