Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
une expression lambda dont le type de retour spécifié est void ne peut pas retourner de valeur
Remarques
Le compilateur génère cette erreur quand une expression lambda qui spécifie void comme type de retour retourne une valeur, ou quand une expression lambda contient plusieurs instructions et retourne une valeur, mais ne spécifie pas son type de retour.
Pour corriger cette erreur
Ne retournez pas une valeur à partir de l’expression lambda ; ou
Fournissez le type de retour de l’expression lambda ; ou
Combinez les instructions qui composent le corps de l’expression lambda dans une instruction unique.
Example
L’exemple suivant génère l’erreur C3499, car le corps d’une expression lambda contient plusieurs instructions et retourne une valeur, mais l’expression lambda ne spécifie pas le type de retour :
// C3499a.cpp
int main()
{
[](int x) { int n = x * 2; return n; } (5); // C3499
}
L’exemple suivant montre deux résolutions possibles pour l’erreur C3499. La première résolution fournit le type de retour de l’expression lambda. La seconde résolution combine les instructions qui composent le corps de l’expression lambda dans une instruction unique.
// 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);
}