とくに
0c52de9dbe
2020/07/03 (金) 16:22:29
キャプチャ
int a = 10;
//ラムダ式のスコープ外の変数を使用するには変数のキャプチャを指定する。
auto func1 = [a]{ //変数aを指定
cout << a << endl;
}
auto func2 = [a]{
a = 5; //コピーしたキャプチャは書き換えられない。
}
auto func3 = [a]()mutable{
a = 5; //mutable属性を指定すれば書き換えることができる。
}
auto func4 = [&a]{
a = 7; //参照キャプチャは書き換えられる。
}
int x = 20,y = 4,z = 98;
auto func5 = [=]{
cout << x << "," << y << "," << z << endl; //複数の変数をキャプチャするには=を使う
}
auto func6 = [&]{
cout << x << "," << y << "," << z << endl; //参照でも同様。
}
auto func7 = [a,x,&y,&z]{
cout << a << "," << x << "," << y << "," << z << endl; //個別に指定することも可能。
}
通報 ...