#include <iostream>
#include <future>
#include <functional>
int main() {
std::future<int> f;
{
std::packaged_task<int()> task([](){return 3; });
f = task.get_future();
}
std::cout<<f.get()<<std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnV0dXJlPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCmludCBtYWluKCkgewogICAgc3RkOjpmdXR1cmU8aW50PiBmOwogICAgewogICAgICAgIHN0ZDo6cGFja2FnZWRfdGFzazxpbnQoKT4gdGFzayhbXSgpe3JldHVybiAzOyB9KTsKICAgICAgICBmID0gdGFzay5nZXRfZnV0dXJlKCk7CiAgICB9CiAgICBzdGQ6OmNvdXQ8PGYuZ2V0KCk8PHN0ZDo6ZW5kbDsKCXJldHVybiAwOwp9