c++のラムダ式について質問です。
キャプチャにauto型の変数aを入れ、ラムダ式の処理にて4を足しています。
ここで疑問なのですが、この書き方ではラムダ式を呼んだ後のaの値が変わらないのはなぜでしょうか?
& { a += 4; };
上のこのラムダ式にauto f = & { a += 4; } f();と改良すると
coutした際に値が変わっていることが確認できます。
& { a += 4; };ではラムダ式を呼べていないということでしょうか?
このコードを参考にした動画ではこの& { a += 4; };
という書き方では一度処理だけする関数と記載されていたので
式が一回は呼ばれるものだと理解していたのですが、このあたりの挙動がよくわかりません。
#include <iostream>
int main() {
auto a = 9; [&](auto) { a += 4; }; std::cout << a; return 0;
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。