Partager via


Erreur du compilateur C3493

Impossible de capturer implicitement 'var', car aucun mode de capture par défaut n’a été spécifié

La capture de l’expression lambda vide, [], spécifie que l’expression lambda ne capture pas de variables explicitement ou implicitement.

Pour corriger cette erreur

  • Spécifiez un mode de capture par défaut, ou

  • Capturez explicitement une ou plusieurs variables.

Exemples

L’exemple suivant génère l’erreur C3493 parce qu’il modifie une variable externe, alors qu’il spécifie la clause de capture vide :

// C3493a.cpp

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

L’exemple suivant corrige C3493 en spécifiant la capture par référence comme mode de capture par défaut.

// C3493b.cpp

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

Voir aussi

Expressions lambda