Коды такие:
int a = 1;
auto f = [a] {return a;};
a = 100;
std::cout << f() << endl;
return 0;
Я ожидал увидеть 100
в результате. Тем не менее a
как замерзает при захвате в f
, Результат 1
, Есть ли способ сохранить a
соответствует когда a
изменения?
Вам нужно захватить a
по ссылке:
auto f = [&a] {return a;};
Или просто захватить всю среду по ссылке:
auto f = [&] {return a;};
Других решений пока нет …