#include#include int main() { std::promise p; std::future f = p.get_future(); std::thread([&](){ std::this_thread::sleep_for(std::chrono::seconds(2)); p.set_value(42); }).detach(); while (!f.is_ready()) { std::cout << "Waiting for the value to be ready" << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(500)); } std::cout << "The value is now ready!" << std::endl; std::cout << "The value is " << f.get() << std::endl; return 0; }
#includeIn this example, the same logic as before is used, but with the experimental namespace for the future library. Package library: C++ Experimental Library (std::experimental::future)#include int main() { std::experimental::promise p; std::experimental::future f = p.get_future(); std::thread([&](){ std::this_thread::sleep_for(std::chrono::seconds(2)); p.set_value(42); }).detach(); while (!f.is_ready()) { std::cout << "Waiting for the value to be ready" << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(500)); } std::cout << "The value is now ready!" << std::endl; std::cout << "The value is " << f.get() << std::endl; return 0; }