Лямбды и захват локальными переменными ссылки: Доступ после области
Я передаю свои локальные переменные по ссылке на две лямбды. Я называю эти лямбды вне области действия функции. Этоundefined
?
std::pair<std::function<int()>, std::function<int()>> addSome() {
int a = 0, b = 0;
return std::make_pair([&a,&b] {
++a; ++b;
return a+b;
}, [&a, &b] {
return a;
});
}
int main() {
auto f = addSome();
std::cout << f.first() << " " << f.second();
return 0;
}
Однако, если это не так, изменения в одной лямбде не отражаются в другой лямбде.
Я неправильно понимаю передачу по ссылке в контексте лямбд?
Я пишу в переменные, и, кажется, работает нормально, без ошибок времени выполнения с выводом
2 0
, Если это работает, то я ожидал бы выходной2 1
.