Teilen über


Compilerfehler C3493

"var" kann nicht implizit erfasst werden, da kein Standarderfassungsmodus angegeben wurde

Bemerkungen

Die leere Lambdaausdruckerfassung, [], gibt an, dass der Lambdaausdruck weder explizit noch implizit Variablen erfasst.

So beheben Sie diesen Fehler

  • Geben Sie einen Standarderfassungsmodus an, oder

  • erfassen Sie explizit mindestens eine Variable.

Example

Im folgenden Beispiel wird C3493 generiert, da eine externe Variable geändert, aber die leere Erfassungsklausel angegeben wird:

// C3493a.cpp

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

Im folgenden Beispiel wird C3493 aufgelöst, indem die Erfassung nach Verweis als Standarderfassungsmodus angegeben wird.

// C3493b.cpp

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

Siehe auch

Lambda-Ausdrücke