#include <iostream>
#include <string>
#include <thread>
#include <future>
#include <chrono>


int main()
{
    auto pms = std::promise<std::string>();
    auto ftr = pms.get_future();

    std::thread thread([&](){pms.set_value("hello world");});    
    ftr.wait();
    std::cout << ftr.get() << std::endl;
    thread.join ();
    return 0;
}