[capture list] (parameter list) -> return type
{ function body; };
capture list 捕获列表
[] // 没有定义任何变量。使用未定义变量会引发错误。
[x, &y] // x以传值方式传入(默认),y以引用方式传入。
[&] // 任何被使用到的外部变量都隐式地以引用方式加以引用。
[=] // 任何被使用到的外部变量都隐式地以传值方式加以引用。
[&, x] // x显式地以传值方式加以引用。其余变量以引用方式加以引用。
[=, &z] // z显式地以引用方式加以引用。其余变量以传值方式加以引用。
int a = 10;
auto f = [&a](int x)->int{
a = 20;
return a+x;
}
cout << a << endl;//10
cout << f(10) << endl;//30
cout << a << endl;//20
标签:变量,方式,加以,int,引用,地以,表达式,lambda From: https://www.cnblogs.com/cintang/p/17380306.html