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.
en lambda som har angetts för att ha en ogiltig returtyp kan inte returnera ett värde
Anmärkningar
Kompilatorn genererar det här felet när ett lambda-uttryck som anger void som returtyp returnerar ett värde, eller när ett lambda-uttryck innehåller mer än en instruktion och returnerar ett värde, men inte anger dess returtyp.
Så här åtgärdar du det här felet
Returnera inte ett värde från lambda-uttrycket, eller
Ange returtypen för lambda-uttrycket, eller
Kombinera de instruktioner som utgör lambda-uttryckets brödtext till en enda instruktion.
Example
I följande exempel genereras C3499 eftersom brödtexten i ett lambda-uttryck innehåller flera uttryck och returnerar ett värde, men lambda-uttrycket anger inte returtypen:
// C3499a.cpp
int main()
{
[](int x) { int n = x * 2; return n; } (5); // C3499
}
I följande exempel visas två möjliga lösningar på C3499. Den första upplösningen innehåller returtypen för lambda-uttrycket. Den andra lösningen kombinerar de instruktioner som utgör lambda-uttryckets brödtext till en enda instruktion.
// 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);
}