lambda 表示式具體形式如下:
[capture list]
(params list) mutable exception-
>
return
type
各項具體含義如下
capture list:捕獲外部變數列表
params list:形參列表
mutable指示符:用來說用是否可以修改捕獲的變數
exception:異常設定
return type:返回型別
function body:函式體
// 沒有定義任何變數。使用未定義變數會引發錯誤。
[x, &y] // x以傳值方式傳入(預設),y以引用方式傳入。
[&] // 任何被使用到的外部變數都隱式地以引用方式加以引用。
[=] // 任何被使用到的外部變數都隱式地以傳值方式加以引用。
[&, x] // x顯式地以傳值方式加以引用。其餘變數以引用方式加以引用。
[=, &z] // z顯式地以引用方式加以引用。其餘變數以傳值方式加以引用。
int
main()
(x, y)
; cout << z << endl;
cout << x << endl;
cout << y << endl;
return0;
}
列印結果:
20911
20
**剖析:
[&x,y] : &x, 表示把x的位址傳進去, 在裡面修改x值,外面的x的值跟著改變 ,y表示把值傳進去, 修改y不改變外部y的值
(int &a,int b) 傳位址 需要使用&符號
(x,y) 閉包執行方法,傳入的引數
C lambda 和 函式物件
include include include include include include using namespace std intadd const int a,const int b intsub const int a,const int b struct mulitiply int...
C Lambda表示式的基本使用
目錄 1.認識 lambda 1.1.捕獲列表 1.2.形參列表 1.3.說明符 1.4.返回型別 1.5.函式體 2.基本使用 3.參考 lambda的基本語法如下 當定義乙個lambda時,編譯器生成乙個與lambda對應的新的 未命名的 類型別。下面對重要的組成部分進行說明 捕獲列表是零或多個...
C Lambda函式(匿名函式) 使用方法
乙個lambda表示式表示乙個可呼叫的 單元,可以理解為未命名的內聯函式。乙個lambda表示式具有返回型別 引數列表 函式體。一般lambda表示式具有如下的形式 capture list parameter list return type其中 capture list 捕獲列表 lambda表...