编译器错误 C3495

“var”:lambda 捕获必须有自动存储持续时间

不能捕获没有自动存储持续时间的变量,如标记为 staticextern的变量。

更正此错误

  • 不要将 staticextern 变量传递到 lambda 表达式的捕获列表。

示例

下面的示例将生成 C3495,因为 lambda 表达式的捕获列表中出现了 static 变量 n

// C3495.cpp

int main()
{
   static int n = 66;
   [&n]() { return n; }(); // C3495
}

另请参阅

Lambda 表达式