Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"zwracany typ": wszystkie wyrażenia zwracane muszą być wywoływane do tego samego typu: wcześniej był to "typ zwracany"
Uwagi
Lambda musi określić jego typ zwracany, chyba że zawiera pojedynczą instrukcję return. Jeśli lambda zawiera wiele instrukcji zwracanych, muszą mieć ten sam typ.
Aby poprawić ten błąd
- Określ końcowy typ zwracany dla lambda. Sprawdź, czy wszystkie zwroty z lambda są tego samego typu lub mogą być niejawnie konwertowane na typ zwracany.
Przykład
Poniższy przykład generuje C3487, ponieważ zwracane typy lambda nie są zgodne:
// C3487.cpp
// Compile by using: cl /c /W4 C3487.cpp
int* test(int* pi) {
// To fix the error, uncomment the trailing return type below
auto odd_pointer = [=]() /* -> int* */ {
if (*pi % 2)
return pi;
return nullptr; // C3487 - nullptr is not an int* type
};
return odd_pointer();
}