C++11 lamda 匿名函数

lamda函数:一个可调用的代码单元,可理解为一个未命名的内联函数。

既然是函数,那么定义就和函数类似了,一个返回类型,一个参数列表,一个函数体,多了一个捕获列表

[捕获列表](参数列表) -> 返回类型 { 函数体;}

其中:捕获列表和函数体是必不可少的,捕获列表不为空指的是'[]'不为空,里面的捕获值通常为空

例:

auto f = [] {return 1;}

1.捕获列表:

[]

空捕获列表,不能使用所在函数的

变量

[name1,name2,name3,...]

值捕获方式,即以值拷贝的方式

捕获函数中的变量,如果有'&'则是

引用捕获

[&] 所有来自函数的实体都以引用捕获方式
[=] 所有来自函数的实体都以值捕获方式
[&,name1,name2,...]

name1,name2等以值捕获,其它的隐式捕获的

变量采用引用捕获方式

[=,&name1,&name2,...]

name1,name2等采用引用捕获,其它的隐式

捕获为值捕获

2.参数列表

太困了。。。下次再写

猜你喜欢

转载自blog.csdn.net/yufanghu/article/details/81193044