Lambda表达式
2017-03-02 本文已影响10人
期门
Lambda表达式
1、完整形式:[capture](params)mutable exception attribute->ret{body}
[捕获列表](参数列表)mutable exception attribute->返回值类型{函数体}
mutable修饰符:表达式可以修改被捕获的变量
Exception:表达式是否抛出异常,抛出何种异常
Attribute:声明属性
2、[capture](params)->ret{body}:const形式的lambda表达式,不能修改捕获列表中的值
3、[capture](params){body}:省略返回值类型的lambda表达式,返回值类型可以根据函数体重return的返回值类型推导出来,没有return 则类似void类型
4、[capture]{body}:类似于无参函数
捕获列表[capture]:捕获外部的变量
[=]以值的方式捕获所有外部变量
[&]以引用的方式捕获所有外部变量
[this]以值的方式捕获this指针
[a,&b]以值的方式捕获a,以引用的方式捕获b
[]不捕获任何变量
(params)指定参数列表
ֽ$3_d0x