編譯器錯誤 C3490
無法修改 'var',因為正由常數物件存取中
在 const
方法中宣告的 Lambda 運算式不能修改不可變動的成員資料。
更正這個錯誤
- 移除方法宣告的
const
修飾詞。
範例
下列範例會產生 C3490,因為它修改了 _i
方法中的成員變數 const
:
// 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;
};