有別於 functor ,lambda 提供了更簡潔的寫法

 

lambda 形式

[ capture list ] ( parameter list ) -> return type { function body }

 

capture list 放置 lambda 外的可視變數

parameter list 放置參數

 

例子

#include <iostream>

using namespace std;

int main()
{
    int a = 5;
    auto f = [a] (int b) -> int { return a + b; };

    cout << f(3) << endl;  // 輸出 8

    return 0;
}

 

另外,type 可以用來轉型

auto f = [ ] () -> int { return 3.14; }; // f() 會輸出 3

也可以省略

auto f = [ ] () { return 3.14; }; // 輸出 3.14

如果沒有 -> type 且沒有參數, 則 () 也可省略

auto f = [ ] { return 3.14; }; 

 

note:

g++ --std=c++11 file.cpp -o file

文章標籤
全站熱搜
創作者介紹
創作者 大神(偽) 的頭像
大神(偽)

大神的世界

大神(偽) 發表在 痞客邦 留言(0) 人氣(22)