1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
方便定义匿名函数
语法
[capture list] (params list) mutable exception -> return type { function body }
[capture list] (params list) -> return type {function body}
[capture list] (params list) {function body} //常用
[capture list] {function body}
capture list:捕获外部变量列表, 如
[&, a, b]除a和b按值进行传递外,其他参数都按引用进行传递。
[a, &b] 将a按值进行传递,b按引用进行传递。
[=,&a, &b] 除a和b按引用进行传递外,其他参数都按值进行传递。
params list:形参
mutable指示符:用来说明是否可以修改捕获的变量
exception:异常设定
return type:返回类型
function body:函数体
示例:
int a = 123;
auto f = [a]() mutable { cout << ++a; };
cout << a << endl; // 输出:123
f(); // 输出:124
欢迎评论交流