C Lambda表示式基本用法

2021-09-28 15:52:32 字數 1429 閱讀 5404

建立乙個匿名函式並執行。objective-c採用的是上尖號^,而c++ 11採用的是配對的方括號。例項如下:

#include using namespace std;

int main()

();}

我們也可以方便的將這個建立的匿名函式賦值出來呼叫:

#include using namespace std;

int main()

; func(i);

}

#include using namespace std;

int main()

; func();

}

vs 報錯

error c3493: 無法隱式捕獲「i」,因為尚未指定預設捕獲模式

error c2064: 項不會計算為接受 0 個引數的函式

g++ 報錯:

error: 『i』 is not captured

要直接沿用外部的變數需要在 中指名捕獲。

結果:1024

#include using namespace std;

int main()

; fun2();

};fun1();

}

[&] 引用捕獲

#include using namespace std;

int main()

; fun1();

}

結果:

0x28ff0c

0x28ff0c

#include using namespace std;

int main()

; fun1();

}

結果:

outside i value:1024 addr:0x28ff08

inside i value:1024 addr:0x28ff04

#include using namespace std;

int main()

; fun1();

}

結果:

outside i:0x28ff0c

outside j:0x28ff08

inside i:0x28ff00

inside j:0x28ff08

#include using namespace std;

class test

; void lambda() ;

fun();

}};

int main()

C Lambda表示式用法

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

C Lambda表示式用法

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

C Lambda表示式的基本使用

目錄 1.認識 lambda 1.1.捕獲列表 1.2.形參列表 1.3.說明符 1.4.返回型別 1.5.函式體 2.基本使用 3.參考 lambda的基本語法如下 當定義乙個lambda時,編譯器生成乙個與lambda對應的新的 未命名的 類型別。下面對重要的組成部分進行說明 捕獲列表是零或多個...