Lambda表達(dá)式
1、完整形式:[capture](params)mutable?exception?attribute->ret{body}
[捕獲列表](參數(shù)列表)mutable?exception?attribute->返回值類型{函數(shù)體}
mutable修飾符:表達(dá)式可以修改被捕獲的變量
Exception:表達(dá)式是否拋出異常,拋出何種異常
Attribute:聲明屬性
2、[capture](params)->ret{body}:const形式的lambda表達(dá)式,不能修改捕獲列表中的值
3、[capture](params){body}:省略返回值類型的lambda表達(dá)式,返回值類型可以根據(jù)函數(shù)體重return的返回值類型推導(dǎo)出來,沒有return 則類似void類型
4、[capture]{body}:類似于無參函數(shù)
捕獲列表[capture]:捕獲外部的變量
[=]以值的方式捕獲所有外部變量
[&]以引用的方式捕獲所有外部變量
[this]以值的方式捕獲this指針
[a,&b]以值的方式捕獲a,以引用的方式捕獲b
[]不捕獲任何變量
(params)指定參數(shù)列表
?$3_d0x