Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"var": przechwytywanie wartości bajtowej nie może być modyfikowane w nie modyfikowalnym lambda
Uwagi
Nie modyfikowalne wyrażenie lambda nie może modyfikować wartości zmiennej przechwyconej przez wartość.
Aby poprawić ten błąd
Zadeklaruj wyrażenie lambda za pomocą słowa kluczowego
mutablelubPrzekaż zmienną, odwołując się do listy przechwytywania wyrażenia lambda.
Example
Poniższy przykład generuje kod C3491, ponieważ treść wyrażenia lambda nie modyfikowalnego modyfikuje zmienną mprzechwytywania :
// C3491a.cpp
int main()
{
int m = 55;
[m](int n) { m = n; }(99); // C3491
}
Poniższy przykład rozwiązuje problem C3491, deklarując wyrażenie lambda za pomocą słowa kluczowego mutable :
// C3491b.cpp
int main()
{
int m = 55;
[m](int n) mutable { m = n; }(99);
}