Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
'var': uma captura por valor não pode ser alterada numa lambda não mutável
Observações
Uma expressão lambda não mutável não pode modificar o valor de uma variável capturada pelo valor.
Para corrigir este erro
Declare sua expressão lambda com a
mutablepalavra-chave, ouPasse a variável por referência à lista de captura da expressão lambda.
Example
O exemplo a seguir gera C3491 porque o corpo de uma expressão lambda não mutável modifica a variável mde captura:
// C3491a.cpp
int main()
{
int m = 55;
[m](int n) { m = n; }(99); // C3491
}
O exemplo a seguir resolve C3491 declarando a expressão lambda com a mutable palavra-chave:
// C3491b.cpp
int main()
{
int m = 55;
[m](int n) mutable { m = n; }(99);
}