The std::experimental::promise
class template provides
a means of setting an asynchronous result, which may be retrieved from
another thread through an instance of std::experimental::future
.
The ResultType
template
parameter is the type of the value that can be stored in the asynchronous
result.
A std::experimental::future
associated with the asynchronous
result of a particular std::experimental::promise
instance can be obtained
by calling the get_future()
member function. The asynchronous result is either set to a value of type
ResultType
with the set_value()
member function, or to an exception with the set_exception()
member function.
Instances of std::experimental::promise
are MoveConstructible
and MoveAssignable
, but
not CopyConstructible
or
CopyAssignable
.
template<typename ResultType> class promise { public: promise(); promise(promise&&); ~promise(); promise& operator=(promise&&); template<typename Allocator> promise(std::allocator_arg_t, Allocator const&); promise(promise const&) = delete; promise& operator=(promise const&) = delete; void swap(promise& ); std::experimental::future<ResultType> get_future(); void set_value(see description); void set_exception(std::exception_ptr p); };
#include <experimental/future>