Lambda表达式的声明以方括号[ ]
开始,这部分被称为捕获列表(capture list),用于指定如何从Lambda表达式外部 捕获
变量到其内部作用域。
基本捕获方式
-
空捕获列表 []
:
-
值捕获 [x, y]
:
- 指定按值捕获特定的变量
x
和y
。这意味着在Lambda内部使用的是这些变量的一个副本。
-
引用捕获 [&x, &y]
:
- 指定按引用捕获特定的变量
x
和y
。这样,在Lambda内部直接操作的是原始变量。
-
隐式捕获 [=]
:
- 通过值捕获所有被使用的外部变量。相当于自动为所有用到的外部变量添加了副本。
-
隐式捕获 [&]
: