Partilhar via


Erro do compilador C3490

'var' não pode ser modificado porque está sendo acessado através de um objeto const

Observações

Uma expressão lambda declarada em um const método não pode modificar dados de membros não mutáveis.

Para corrigir este erro

  • Remova o const modificador da declaração de método.

Example

O exemplo a seguir causa C3490 porque modifica a variável membro _i em um método const.

// C3490a.cpp
// compile with: /c

class C
{
   void f() const
   {
      auto x = [=]() { _i = 20; }; // C3490
   }

   int _i;
};

O exemplo a seguir resolve C3490 removendo o const modificador da declaração de método:

// C3490b.cpp
// compile with: /c

class C
{
   void f()
   {
      auto x = [=]() { _i = 20; };
   }

   int _i;
};

Consulte também

Expressões do Lambda