lamda函数:一个可调用的代码单元,可理解为一个未命名的内联函数。
既然是函数,那么定义就和函数类似了,一个返回类型,一个参数列表,一个函数体,多了一个捕获列表
[捕获列表](参数列表) -> 返回类型 { 函数体;}
其中:捕获列表和函数体是必不可少的,捕获列表不为空指的是'[]'不为空,里面的捕获值通常为空
例:
auto f = [] {return 1;}
1.捕获列表:
[] | 空捕获列表,不能使用所在函数的 变量 |
[name1,name2,name3,...] | 值捕获方式,即以值拷贝的方式 捕获函数中的变量,如果有'&'则是 引用捕获 |
[&] | 所有来自函数的实体都以引用捕获方式 |
[=] | 所有来自函数的实体都以值捕获方式 |
[&,name1,name2,...] | name1,name2等以值捕获,其它的隐式捕获的 变量采用引用捕获方式 |
[=,&name1,&name2,...] | name1,name2等采用引用捕获,其它的隐式 捕获为值捕获 |
2.参数列表
太困了。。。下次再写