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