std::experimental::shared_future<T>::shared_future
From cppreference.com
< cpp | experimental | shared future
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 (public member function of std::shared_future<T> ) |