[英]Lambda by reference
我想知道標准是否允許您使用=
通過引用傳遞所有成員。 所以,例如,這是有效的
int i = 0;
auto f = [&i]() {
i = 1;
};
但是,這不會,也不會在=
后面加上&
。
int i = 0;
auto f = [=]() {
i = 1;
};
你的意思是:
int i = 0;
auto f = [&]() {
i = 1;
};
[=]
按值捕獲lambda體內提到的所有內容。
[&]
通過引用捕獲lambda體內提到的所有內容。
在這個lambda表達式中
int i = 0;
auto f = [=]() {
i = 1;
};
捕獲的變量i是lambda的數據成員,在lambda中更改。 所以你必須寫
int i = 0;
auto f = [=]() mutable {
i = 1;
};
如果你想通過引用捕獲我,你應該寫
int i = 0;
auto f = [=,&i]() {
i = 1;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.