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; };