#include <iostream>
int main(){
auto lambda = [] {
return 7;
};
std::cout << lambda() << '\n';
}
Ce programme compile et imprime 7.
Le type de retour de la lambda est déduit au type entier sur la base de la valeur de retour de 7.
Pourquoi cela n'est-il pas possible avec les fonctions ordinaires ?
#include <iostream>
auto function(){
return 42;
}
int main(){
std::cout << function() << '\n';
}
erreur : la fonction 'function' utilise le spécificateur de type 'auto' sans le type de retour qui suit.