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 回答