编译器错误 C3490
无法修改 var,因为正在通过 const 对象对其进行访问
在 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;
};