3
我想知道标准是否允许您通过参考使用=
通过所有成员。因此,举例来说,这部作品Lambda参考
int i = 0;
auto f = [&i]() {
i = 1;
};
然而,这并不而且也不把一个&
在=
的后面。
int i = 0;
auto f = [=]() {
i = 1;
};
我想知道标准是否允许您通过参考使用=
通过所有成员。因此,举例来说,这部作品Lambda参考
int i = 0;
auto f = [&i]() {
i = 1;
};
然而,这并不而且也不把一个&
在=
的后面。
int i = 0;
auto f = [=]() {
i = 1;
};
你的意思是:
int i = 0;
auto f = [&]() {
i = 1;
};
[=]
捕获由值在lambda体内提到的一切。
[&]
通过参考捕捉lambda身体中提及的所有内容。
在该λ表达式
int i = 0;
auto f = [=]() {
i = 1;
};
捕获变量i是拉姆达的数据成员拉姆达内被改变。所以,你必须写
int i = 0;
auto f = [=]() mutable {
i = 1;
};
如果您想通过引用的我会被捕获,你应该写
int i = 0;
auto f = [=,&i]() {
i = 1;
};
啊哈!谢谢。 –