Erro do compilador C3490
'var' não pode ser modificado porque está sendo acessado por meio de um objeto const
Uma expressão lambda declarada em um método const
não pode modificar dados de membro não mutáveis.
Para corrigir este erro
- Remova o modificador
const
da declaração de método.
Exemplos
O seguinte exemplo gera o erro C3490 porque modifica a variável _i
do membro em um método const
:
// C3490a.cpp
// compile with: /c
class C
{
void f() const
{
auto x = [=]() { _i = 20; }; // C3490
}
int _i;
};
O seguinte exemplo resolve o erro C3490 removendo o modificador const
da declaração do método:
// C3490b.cpp
// compile with: /c
class C
{
void f()
{
auto x = [=]() { _i = 20; };
}
int _i;
};