无法修改 var,因为正在通过 const 对象对其进行访问
注解
在 const 方法中声明的 lambda 表达式不能修改不可变成员数据。
更正此错误
- 从方法声明删除
const修饰符。
Example
下面的示例生成 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;
};