Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'var' is vereist wanneer de standaard vastlegmodus door waarde is
Opmerkingen
Wanneer u opgeeft dat de standaardopnamemodus voor een lambda-expressie by-value is, kunt u een variabele niet op waarde doorgeven aan de capture-component van die expressie.
Deze fout corrigeren
Geef de variabele niet expliciet door aan de capture-component of
Geef geen waarde op als standaardopnamemodus of
Geef "bij verwijzing" op als de standaardopnamemodus, или
Geef de variabele door als referentie aan de 'capture clause'. (Dit kan het gedrag van de lambda-expressie wijzigen.)
Example
In het volgende voorbeeld verschijnt een C3489-variabele n als waarde in de capturingclausule van een lambda-expressie waarvan de standaardmodus als waarde is.
// C3489a.cpp
int main()
{
int n = 5;
[=, n]() { return n; } (); // C3489
}
In het volgende voorbeeld ziet u vier mogelijke oplossingen voor C3489:
// C3489b.cpp
int main()
{
int n = 5;
// Possible resolution 1:
// Do not explicitly pass n to the capture clause.
[=]() { return n; } ();
// Possible resolution 2:
// Do not specify by-value as the default capture mode.
[n]() { return n; } ();
// Possible resolution 3:
// Specify by-reference as the default capture mode.
[&, n]() { return n; } ();
// Possible resolution 4:
// Pass n by reference to the capture clause.
[&n]() { return n; } ();
}