Teilen über


Compilerfehler C3490

"var" kann nicht geändert werden, da über ein Konstantenobjekt darauf zugegriffen wird

Bemerkungen

Ein Lambda-Ausdruck, der in einer const -Methode deklariert ist, kann nicht änderbare Memberdaten nicht ändern.

So beheben Sie diesen Fehler

  • Entfernen Sie den const -Modifizierer aus der Methodendeklaration.

Example

Im folgenden Beispiel wird C3490 generiert, da die Membervariable _i in einer const -Methode geändert wird:

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

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

   int _i;
};

Im folgende Beispiel wird C3490 durch Entfernen des const -Modifizierers aus der Methodendeklaration aufgelöst:

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

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

   int _i;
};

Siehe auch

Lambda-Ausdrücke