2

コードは次のとおりです。

int a = 1;
auto f = [a] {return a;};
a = 100;
std::cout << f() << endl;
return 0;

結果として期待して100いました。ただし、でaキャプチャするとフリーズするようなものfです。結果は1です。a変更時に一貫性を保つ方法はありaますか?

4

1 に答える 1

6

参照によってキャプチャする必要がありaます:

auto f = [&a] {return a;};

または、参照によって環境全体をキャプチャするだけです。

auto f = [&] {return a;};
于 2013-02-16T15:09:52.753 に答える