Udostępnij za pomocą


Błąd kompilatora C3490

Nie można zmodyfikować elementu "var", ponieważ jest on uzyskiwany za pośrednictwem obiektu const

Uwagi

Wyrażenie lambda zadeklarowane w metodzie const nie może modyfikować danych składowych, które nie są modyfikowalne.

Aby poprawić ten błąd

  • const Usuń modyfikator z deklaracji metody.

Example

Poniższy przykład generuje C3490, ponieważ modyfikuje zmienną _i składową w metodzie const :

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

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

   int _i;
};

Poniższy przykład rozwiązuje problem C3490 przez usunięcie const modyfikatora z deklaracji metody:

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

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

   int _i;
};

Zobacz też

Wyrażenia lambda