Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'var': Zachytávání podle hodnot nelze změnit v neschovatelném lambdě.
Poznámky
Nesměnitelný výraz lambda nemůže změnit hodnotu proměnné, která je zachycena hodnotou.
Oprava této chyby
Deklarace výrazu lambda pomocí klíčového
mutableslova neboPředejte proměnnou odkazem na seznam zachycení výrazu lambda.
Example
Následující příklad vygeneruje C3491, protože tělo nesměnitelného výrazu lambda modifikuje proměnnou mcapture:
// C3491a.cpp
int main()
{
int m = 55;
[m](int n) { m = n; }(99); // C3491
}
Následující příklad vyřeší C3491 deklarováním výrazu lambda s klíčovým slovem mutable :
// C3491b.cpp
int main()
{
int m = 55;
[m](int n) mutable { m = n; }(99);
}