컴파일러 오류 C3490

'var'는 const 개체를 통해 액세스되고 있으므로 수정할 수 없습니다.

const 메서드에서 선언된 람다 식은 변경할 수 없는 멤버 데이터를 수정할 수 없습니다.

이 오류를 해결하려면

  • 메서드 선언에서 const 한정자를 제거합니다.

예제

다음 예제에서는 _i 메서드의 멤버 변수 const 를 수정하므로 C3490을 생성합니다.

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

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

   int _i;
};

다음 예제에서는 메서드 선언에서 const 한정자를 제거하여 C3490를 해결합니다.

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

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

   int _i;
};

참고 항목

람다 식