Lambda表达式

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

你可能感兴趣的:(Lambda表达式)