コンパイラ エラー 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;
};