Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"var": en bivärdesavbildning kan inte ändras i en icke-föränderlig lambda
Anmärkningar
Ett immutabelt lambda-uttryck kan inte ändra värdet för en variabel som fångas av värde.
Så här åtgärdar du det här felet
Deklarera ditt lambda-uttryck med nyckelordet
mutableellerSkicka variabeln med referens till samlingslistan för lambda-uttrycket.
Example
I följande exempel genereras C3491 eftersom brödtexten i ett icke-föränderligt lambda-uttryck ändrar avbildningsvariabeln m:
// C3491a.cpp
int main()
{
int m = 55;
[m](int n) { m = n; }(99); // C3491
}
Följande exempel löser C3491 genom att deklarera lambda-uttrycket med nyckelordet mutable :
// C3491b.cpp
int main()
{
int m = 55;
[m](int n) mutable { m = n; }(99);
}