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;
};
啊哈!謝謝。 –