c 11 lambda 匿名函式

2022-03-15 06:27:28 字數 758 閱讀 4286

#include #include 

using

namespace

std::placeholders;

//lambda即匿名函式

intmain()

;

//格式:[captures] (params) -> ret

auto func =();

//lambda中變數擷取

/* 不擷取任何變數

[&} 擷取外部作用域中所有變數,並作為引用在函式體中使用

[=] 擷取外部作用域中所有變數,並拷貝乙份在函式體中使用

[=, &foo] 擷取外部作用域中所有變數,並拷貝乙份在函式體中使用,但是對foo變數使用引用

[bar] 擷取bar變數並且拷貝乙份在函式體重使用,同時不擷取其他變數

[this] 擷取當前類中的this指標。如果已經使用了&或者=就預設新增此選項。

*///

所有要在lambda中使用a需要

auto func1 = [=]();

func1();

getchar();

return0;

}

for(int i = 0; i < thread_numb; ++i)

, m_libevent_threads[i]));

}

可以傳遞引數

m_libevent_threads[i]

C 11 Lambda匿名函式學習

capture list params list mutable exception return type各項具體含義如下 capture list 捕獲外部變數列表 params list 形參列表 mutable指示符 用來說用是否可以修改捕獲的變數 exception 異常設定 return...

C 11 Lambda表示式(匿名函式)

c 11引入了lambda表示式,使得程式設計師可以定義匿名函式,該函式是一次性執行的,既方便了程式設計,又能防止別人的訪問。lambda表示式的語法通過下圖來介紹 這裡假設我們定義了乙個如上圖的lambda表示式。現在來介紹途中標有編號的各個部分是什麼意思。lambda表示式的引入標誌,在 裡面可...

C 11 Lambda表示式(匿名函式)詳解

使用 stl 時,往往會大量用到函式物件,為此要編寫很多函式物件類。有的函式物件類只用來定義了乙個物件,而且這個物件也只使用了一次,編寫這樣的函式物件類就有點浪費。而且,定義函式物件類的地方和使用函式物件的地方可能相隔較遠,看到函式物件,想要檢視其 operator 成員函式到底是做什麼的也會比較麻...