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.
parametr lambda, który został określony, aby typ zwracany pustki nie może zwrócić wartości
Uwagi
Kompilator generuje ten błąd, gdy wyrażenie lambda, które określa void jako typ zwraca wartość, lub gdy wyrażenie lambda zawiera więcej niż jedną instrukcję i zwraca wartość, ale nie określa jej zwracanego typu.
Aby poprawić ten błąd
Nie zwracaj wartości z wyrażenia lambda lub
Podaj typ zwracany wyrażenia lambda lub
Połącz instrukcje tworzące treść wyrażenia lambda w jedną instrukcję.
Example
Poniższy przykład generuje kod C3499, ponieważ treść wyrażenia lambda zawiera wiele instrukcji i zwraca wartość, ale wyrażenie lambda nie określa typu zwracanego:
// C3499a.cpp
int main()
{
[](int x) { int n = x * 2; return n; } (5); // C3499
}
W poniższym przykładzie przedstawiono dwie możliwe rozwiązania C3499. Pierwsza rozdzielczość zapewnia zwracany typ wyrażenia lambda. Druga rozdzielczość łączy instrukcje tworzące treść wyrażenia lambda w jedną instrukcję.
// 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);
}