编译器错误 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; }();
}

另请参阅

Lambda 表达式