std::experimental::shared_future<T>::shared_future (3) - Linux Manuals

std::experimental::shared_future<T>::shared_future: std::experimental::shared_future<T>::shared_future

NAME

std::experimental::shared_future<T>::shared_future - std::experimental::shared_future<T>::shared_future

Synopsis


shared_future() noexcept; (1)
shared_future(std::experimental::shared_future<T>&& f) noexcept; (2)
shared_future(const std::experimental::shared_future<T>& f); (3)
shared_future(std::experimental::future<std::experimental::shared_future<T>> && other) noexcept; (4)
shared_future(std::experimental::future<T>&& f) noexcept; (5)


1) Default constructor. Constructs an empty shared_future object that does not refer to a shared state.
2) Constructs a shared_future object, transferring the shared state held by f, if any. After construction, f.valid() is false.
3) Constructs a shared future that refers to the same shared state as f, if any.
4) Unwrapping constructor. Constructs a shared_future object from the shared state referred to by other, if any. If other.valid() == false prior to this call, the constructed shared_future object is empty. Otherwise, the resulting shared_future object becomes ready when one of the following happens:


* other and other.get() are both ready. The value or exception from other.get() is stored in the shared state associated with the resulting shared_future object.
* other is ready, but other.get() is invalid. An exception of type std::future_error with an error condition of std::future_errc::broken_promise is stored in the shared state associated with the resulting shared_future object.


After this constructor returns, valid() is equal to the value of other.valid() prior to this call, and other.valid() == false.
5) Constructs a shared_future object, transferring the shared state held by f, if any. After construction, f.valid() is false.

Parameters


f - another future object to initialize with
other - A std::experimental::future object to unwrap

Example


 This section is incomplete
 Reason: no example


Defect reports


The following behavior-changing defect reports were applied retroactively to previously published C++ standards.


DR Applied to Behavior as published Correct behavior
LWG_2697 Concurrency TS behavior of unwrapping constructor is unclear with an invalid future constructs an empty future

See also


              constructs the future object
constructor (public member function of std::shared_future<T>)