C 11 Lambda表示式捕獲列表

2021-09-22 01:50:42 字數 545 閱讀 6911

參考:

[捕獲列表]

1、空,沒有使用任何函式物件引數。

2、=,函式體內可以使用lambda所在作用範圍內所有可見的區域性變數(包括lambda所在類的this),並且是值傳遞方式(相當於編譯器自動為我們按值傳遞了所有區域性變數)。

3、&,函式體內可以使用lambda所在作用範圍內所有可見的區域性變數(包括lambda所在類的this),並且是引用傳遞方式(相當於編譯器自動為我們按引用傳遞了所有區域性變數),不過要注意是const引用。

4、this,函式體內可以使用lambda所在類中的成員變數。

5、a,將a按值進行傳遞。按值進行傳遞時,函式體內不能修改傳遞進來的a的拷貝,因為預設情況下函式是const的。要修改傳遞進來的a的拷貝,可以新增mutable修飾符。

6、&a,將a按引用進行傳遞。

7、a, &b,將a按值進行傳遞,b按引用進行傳遞。

8、=,&a, &b,除a和b按引用進行傳遞外,其他引數都按值進行傳遞。

9、&, a, b,除a和b按值進行傳遞外,其他引數都按引用進行傳遞。

C 11 Lambda表示式捕獲列表

捕獲列表 1 空,沒有使用任何函式物件引數。2 函式體內可以使用lambda所在作用範圍內所有可見的區域性變數 包括lambda所在類的this 並且是值傳遞方式 相當於編譯器自動為我們按值傳遞了所有區域性變數 3 函式體內可以使用lambda所在作用範圍內所有可見的區域性變數 包括lambda所在...

C 11 lambda表示式 詳解

如下圖,lambda表示式由下面幾個部分構成 c 11 的 lambda 表示式規範如下 mutable 修飾符說明 lambda 表示式體內的 可以修改 獲的變數,並且可以訪問 獲物件的 non const 方法。exception 說明 lambda 表示式是否丟擲異常 noexcept 以及丟...

C 11 lambda 表示式解析

中括號中 from 下面是各種變數擷取的選項 小括號中,就是函式引數 lambda表示式可以作為其它函式引數 1 標準格式 有箭頭 就要顯示寫明返回值型別 auto pfunc1 this void pfunc1 2 簡化格式 void 型別返回值 沒有箭頭 會預設檢測返回值型別 auto pfun...