Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
'variable' : impossible de modifier une capture par valeur dans une expression lambda non mutable
Remarques
Une expression lambda non mutable ne peut pas modifier la valeur d’une variable capturée par valeur.
Pour corriger cette erreur
Déclarez votre expression lambda avec le mot clé
mutable, ouPassez la variable par référence à la liste de capture de l’expression lambda.
Example
L’exemple suivant génère l’erreur C3491, car le corps d’une expression lambda non mutable modifie la variable de capture m:
// C3491a.cpp
int main()
{
int m = 55;
[m](int n) { m = n; }(99); // C3491
}
L’exemple suivant résout l’erreur C3491 en déclarant l’expression lambda avec le mot clé mutable :
// C3491b.cpp
int main()
{
int m = 55;
[m](int n) mutable { m = n; }(99);
}