Error del compilador C3493Compiler Error C3493

'var' no se puede capturar de forma implícita porque no se ha especificado ningún modo de captura predeterminado'var' cannot be implicitly captured because no default capture mode has been specified

La captura de la expresión lambda vacía, [], especifica que la expresión lambda no captura de forma explícita ni implícita ninguna variable.The empty lambda expression capture, [], specifies that the lambda expression does not explicitly or implicitly capture any variables.

Para corregir este errorTo correct this error

  • Proporcione un modo de captura predeterminado, o bienProvide a default capture mode, or

  • Capture explícitamente una o varias variables.Explicitly capture one or more variables.

EjemplosExamples

El ejemplo siguiente genera el error C3493 porque modifica una variable externa, pero especifica la cláusula de captura vacía:The following example generates C3493 because it modifies an external variable but specifies the empty capture clause:

// C3493a.cpp

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

El ejemplo siguiente resuelve el error C3493 especificando mediante referencia como el modo de captura predeterminado.The following example resolves C3493 by specifying by-reference as the default capture mode.

// C3493b.cpp

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

Consulte tambiénSee also

Expresiones lambdaLambda Expressions