C 11之lambda表示式

2021-07-10 03:28:07 字數 439 閱讀 9882

lambda表示式就是匿名函式,例如:

auto fun = (int a,int b)

lambda的格式如下

[捕獲列表] (引數)

捕獲列表有下面幾種:

不捕獲任何變數

[&] 捕獲外部作用域的所有變數,並作為引用在函式體內使用(按引用捕獲)

[=] 捕獲外部作用域的所有變數,並作為副本在函式體內使用(按值捕獲)

[=,&foo] 按值捕獲外部作用域的所有變數,按引用捕獲foo

[foo] 按值捕獲foo,其他變數都不捕獲

int main(int arc,char** argv)

; fun(10); // 輸出 10

cout << var << endl; // 輸出 11

return 0;

}

c 11之lambda表示式

c 11中的lambda表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda的語法形式如下 函式物件引數 操作符過載函式引數 mutable或exception宣告 返回值型別 可以看到,lambda主要分為五個部分 函式物件引數 操作符過載函式引數 mutable或exceptio...

C 11之lambda表示式

capture parameters mutable return type1.capture 捕捉列表。捕捉列表總是出現在lambda函式的開始處。實際上,是lambda引出符。編譯器根據該引出符判斷接下來的 是否是lambda函式。捕捉列表能夠捕捉上下文中的變數以供lambda函式使用 2.pa...

c 11學習之lambda表示式

最近在專案開發過程中用到了c 11的lambda表示式,也是邊學習邊使用,下面總結下我對lambda表示式的認識。lambda表示實際是乙個函式,它的語法如下 capture parameters returntype 或者 capture parameters mutable returntype...