Compartilhar via


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

Confira também

Expressões Lambda