Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
"var": параметр, передаваемый по значению, не может быть изменен в лямбда-выражении, объявленном как неизменяемое
Замечания
Неизменяемое лямбда-выражение не может изменить значение переменной, передаваемой по значению.
Исправление ошибки
Объявите лямбда-выражение с ключевым словом
mutableилипередайте переменную по ссылке в список передачи лямбда-выражения.
Example
В приведенном ниже примере возникает ошибка C3491, так как тело неизменяемого лямбда-выражения изменяет передаваемую переменную m:
// C3491a.cpp
int main()
{
int m = 55;
[m](int n) { m = n; }(99); // C3491
}
В приведенном ниже примере ошибка C3491 устраняется путем объявления лямбда-выражения с ключевым словом mutable :
// C3491b.cpp
int main()
{
int m = 55;
[m](int n) mutable { m = n; }(99);
}