5
Lambda的返回类型可以通过返回值来推断,那么为什么函数不能呢?
#include <iostream> int main(){ auto lambda = [] { return 7; }; std::cout << lambda() << '\n'; } 该程序编译并打印7。lambda 的返回类型根据返回值7推导为整数类型。 为什么普通功能无法做到这一点? #include <iostream> auto function(){ return 42; } int main(){ std::cout << function() << '\n'; } 错误:“函数”函数使用“自动”类型说明符,而没有尾随返回类型