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.
az érvénytelen visszatérési típushoz megadott lambda nem tud értéket visszaadni
Megjegyzések
A fordító akkor hozza létre ezt a hibát, ha egy visszatérési típusként megadott lambdakifejezés egy értéket ad void vissza, vagy ha egy lambda kifejezés több utasítást tartalmaz, és egy értéket ad vissza, de nem adja meg a visszatérési típusát.
A hiba kijavítása
Ne adjon vissza értéket a lambda kifejezésből, vagy
Adja meg a lambda kifejezés visszatérési típusát, vagy
Egyesítse a lambda kifejezés törzsét alkotó utasításokat egyetlen utasításba.
Example
Az alábbi példa C3499-et hoz létre, mivel egy lambda kifejezés törzse több utasítást tartalmaz, és egy értéket ad vissza, de a lambda kifejezés nem adja meg a visszatérési típust:
// C3499a.cpp
int main()
{
[](int x) { int n = x * 2; return n; } (5); // C3499
}
Az alábbi példa két lehetséges megoldást mutat be a C3499-nek. Az első felbontás a lambda kifejezés visszatérési típusát adja meg. A második megoldás egyetlen utasítássá alakítja a lambda kifejezés törzsét alkotó utasításokat.
// C3499b.cpp
int main()
{
// Possible resolution 1:
// Provide the return type of the lambda expression.
[](int x) -> int { int n = x * 2; return n; } (5);
// Possible resolution 2:
// Combine the statements that make up the body of
// the lambda expression into a single statement.
[](int x) { return x * 2; } (5);
}