#include <iostream>
int main(){
auto lambda = [] {
return 7;
};
std::cout << lambda() << '\n';
}
Dieses Programm kompiliert und druckt 7.
Der Rückgabetyp des Lambda wird basierend auf dem Rückgabewert von 7 zum ganzzahligen Typ abgeleitet.
Warum ist das mit normalen Funktionen nicht möglich?
#include <iostream>
auto function(){
return 42;
}
int main(){
std::cout << function() << '\n';
}
Fehler: Die Funktion 'function' verwendet den Typbezeichner 'auto' ohne nachfolgenden Rückgabetyp