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