Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A 'var' akkor szükséges, ha az alapértelmezett rögzítési módja az érték szerinti (by-value).
Megjegyzések
Ha megadja, hogy a lambda kifejezés alapértelmezett rögzítési módja érték szerint legyen megadva, nem adhat át változót érték szerint a kifejezés rögzítési záradékának.
A hiba kijavítása
Ne adja át explicit módon a változót a rögzítési záradéknak, vagy
Ne adja meg a by-value-t alapértelmezett rögzítési módként, vagy
Adja meg a "by-reference"-et mint alapértelmezett rögzítési módot, vagy
Adja át a változót a rögzítési záradékra hivatkozva. (Ez megváltoztathatja a lambda kifejezés viselkedését.)
Example
Az alábbi példa a C3489 változót n értékként jeleníti meg egy lambda kifejezés rögzítési záradékában, amelynek alapértelmezett módja érték szerint történik.
// C3489a.cpp
int main()
{
int n = 5;
[=, n]() { return n; } (); // C3489
}
Az alábbi példa négy lehetséges megoldást mutat be a C3489-nek:
// 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; } ();
}