编译器错误 C3493

无法隐式捕获“var”,因为尚未指定默认捕获模式

空 lambda 表达式捕获 []指定 lambda 表达式不显式或隐式捕获任何变量。

更正此错误

  • 提供默认捕获模式,或

  • 显式捕获一个或多个变量。

示例

下面的示例生成 C3493,因为它将修改外部变量,但指定空的 capture 子句:

// C3493a.cpp

int main()
{
   int m = 55;
   [](int n) { m = n; }(99); // C3493
}

下面的示例通过将“按引用”指定为默认捕获模式来解决 C3493。

// C3493b.cpp

int main()
{
   int m = 55;
   [&](int n) { m = n; }(99);
}

另请参阅

Lambda 表达式