Ошибка компилятора C3490
"переменная" не может быть изменен, поскольку доступ к нему осуществляется через константный объект
Лямбда-выражение, объявленное в методе const
, не может изменять данные недоступного для изменения члена.
Исправление ошибки
- Удалите модификатор
const
из объявления метода.
Примеры
Приведенный ниже пример вызывает ошибку C3490, так как переменная-член _i
изменяется в методе const
.
// C3490a.cpp
// compile with: /c
class C
{
void f() const
{
auto x = [=]() { _i = 20; }; // C3490
}
int _i;
};
В приведенном ниже примере ошибка C3490 устраняется путем удаления модификатора const
из объявления метода.
// C3490b.cpp
// compile with: /c
class C
{
void f()
{
auto x = [=]() { _i = 20; };
}
int _i;
};