Class future<T> (2.23.0-rc)

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.

Parameter
NameDescription
rhs future< future< T > > &&

future(future< U > &&)

Creates a future from a future whose result type is convertible to this future's result type.

Parameters
NameDescription
rhs future< U > &&
class U
typename Enable

future(std::shared_ptr< shared_state_type >)

Parameter
NameDescription
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.

Exceptions
TypeDescription
...any exceptions stored in the shared state.
std::future_errorwith std::no_state if the future does not have a shared state.
Returns
TypeDescription
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.

Parameters
NameDescription
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
Returns
TypeDescription
auto

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

Alias Of: typename internal::future_base< T >::shared_state_type