Lambda 汽车
数据类型 auto 关键字是程序员声明 lambda 函数的便捷方式。它有助于缩短程序员输入声明函数指针所需的文本量。
auto DoThis = [](int a, int b) { return a + b; };
// Do this is of type (int)(*DoThis)(int, int)
// else we would have to write this long
int(*pDoThis)(int, int)= [](int a, int b) { return a + b; };
auto c = Dothis(1, 2); // c = int
auto d = pDothis(1, 2); // d = int
// using 'auto' shortens the definition for lambda functions
默认情况下,如果未定义 lambda 函数的返回类型,则将从返回表达式类型自动推断出它。
这三个基本上是一回事
[](int a, int b) -> int { return a + b; };
[](int a, int b) -> auto { return a + b; };
[](int a, int b) { return a + b; };