Delen via


Compilerfout C3491

'var': een by-value capture kan niet worden gewijzigd in een niet-veranderlijke lambda

Opmerkingen

Een niet-veranderlijke lambda-expressie kan de waarde van een variabele die wordt vastgelegd op waarde niet wijzigen.

Deze fout corrigeren

  • Declareer uw lambda-expressie met het mutable trefwoord of

  • Geef de variabele door per referentie aan de opnamelijst van de lambda-expressie.

Example

In het volgende voorbeeld wordt C3491 gegenereerd omdat de hoofdtekst van een niet-veranderlijke lambda-expressie de capture-variabele mwijzigt:

// C3491a.cpp

int main()
{
   int m = 55;
   [m](int n) { m = n; }(99); // C3491
}

In het volgende voorbeeld wordt C3491 omgezet door de lambda-expressie met het mutable trefwoord te declareren:

// C3491b.cpp

int main()
{
   int m = 55;
   [m](int n) mutable { m = n; }(99);
}

Zie ook

Lambda-expressies