shared_future( const shared_future& other );
shared_future( future<R>&& other );
shared_future( shared_future&& other );
Constructs a new
1) Default constructor. Constructs an empty shared future, that doesn't refer to a shared state, that is valid() == false.
2) Constructs a shared future that refers to the same shared state, as
other, if there's any.
3-4) Move constructor. Transfers the shared state held by
otherto *this. After the construction, other->valid() == false, also valid() returns the same value as other.valid() would have returned before the construction.
|other||-||another future object to initialize with|