#include <iostream>
using namespace std;
int main() {
// your code goes here
int x = 3;
// この時点で見える自動変数をコピーでキャプチャし、
// コピーした変数xをラムダ式内で使用する
auto f = [&] { return x = 1; };
// 個別にキャプチャ方法を指定する場合は、
// 以下のように、変数名を指定する
// auto f = [x] { return x + 1; };
int result = f(); // result == 4
cout << result << endl;
auto g = [=] { return x + 1; };
int result2 = g();
cout << result2 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgoJaW50IHggPSAzOwoKCS8vIOOBk+OBruaZgueCueOBp+imi+OBiOOCi+iHquWLleWkieaVsOOCkuOCs+ODlOODvOOBp+OCreODo+ODl+ODgeODo+OBl+OAgQoJLy8g44Kz44OU44O844GX44Gf5aSJ5pWweOOCkuODqeODoOODgOW8j+WGheOBp+S9v+eUqOOBmeOCiwoJYXV0byBmID0gWyZdIHsgcmV0dXJuIHggPSAxOyB9OwoKCS8vIOWAi+WIpeOBq+OCreODo+ODl+ODgeODo+aWueazleOCkuaMh+WumuOBmeOCi+WgtOWQiOOBr+OAgQoJLy8g5Lul5LiL44Gu44KI44GG44Gr44CB5aSJ5pWw5ZCN44KS5oyH5a6a44GZ44KLCgkvLyBhdXRvIGYgPSBbeF0geyByZXR1cm4geCArIDE7IH07CglpbnQgcmVzdWx0ID0gZigpOyAvLyByZXN1bHQgPT0gNAoJCgljb3V0IDw8IHJlc3VsdCA8PCBlbmRsOwoJCglhdXRvIGcgPSBbPV0geyByZXR1cm4geCArIDE7IH07CglpbnQgcmVzdWx0MiA9IGcoKTsKCWNvdXQgPDwgcmVzdWx0MiA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==