Implement ISO/IEC TS 19571:2016 future<T>
.
Constructors
future()
future(future< future< T > > &&)
Creates a new future that unwraps rhs
.
This constructor creates a new shared state that becomes satisfied when both rhs
and rhs.get()
become satisfied. If rhs
is satisfied, but rhs.get()
returns an invalid future then the newly created future becomes satisfied with a std::future_error
exception, and the exception error code is std::future_errc::broken_promise
.
rhs
future< future< T > > &&
future(future< U > &&)
Creates a future from a future whose result type is convertible to this future's result type.
rhs
future< U > &&
class U
typename Enable
future(std::shared_ptr< shared_state_type >)
state
std::shared_ptr< shared_state_type >
Functions
get()
Waits until the shared state becomes ready, then retrieves the value stored in the shared state.
...
std::future_error
T
then(F &&)
Attach a continuation to the future.
Attach a callable func to be invoked when the future is ready. The return type is a future wrapping the return type of func .
Side effects: valid() == false
if the operation is successful.
func
F &&
a Callable to be invoked when the future is ready. The function might be called immediately, e.g., if the future is ready.
typename F
internal::then_helper< F, T >::future_t
future<T>
where T is std::result_of_t<F, R>
(basically). If T matches future<U>
then it returns future<U>
. The returned future will contain the result of func
.
Type Aliases
shared_state_type
typename internal::future_base< T >::shared_state_type

