#include <functional>

std::function<int()> dowork()
{
    int answer = 42;
    auto lambda = [answer] () { return answer; };

    // can do what we want
    answer = 666;
    return lambda;
}

int main()
{
    auto ll = dowork();
    return ll(); // 42
}
