Лямбды и захват локальными переменными ссылки: Доступ после области

Я передаю свои локальные переменные по ссылке на две лямбды. Я называю эти лямбды вне области действия функции. Это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.

Ответы на вопрос(3)

Ваш ответ на вопрос