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);
}