future()noexcept; | (1) | |
| (2) | |
| (3) | |
| (4) | |
| | |
1) Default constructor. Constructs an emptyfuture object that does not refer to a shared state.
2) Constructs afuture object, transferring the shared state held byf, if any. After construction,f.valid() isfalse.
3) Copy constructor is deleted.future cannot be copied.
4) Unwrapping constructor. Constructs a
future object from the shared state referred to by
other, if any. If
other.valid()==false prior to this call, the constructed
future object is empty. Otherwise, the resulting
future object becomes ready when one of the following happens:
- other andother.get() are both ready. The value or exception fromother.get() is stored in the shared state associated with the resulting
future object. - other is ready, butother.get() is invalid. An exception of typestd::future_error with an error condition ofstd::future_errc::broken_promise is stored in the shared state associated with the resulting
future object.
After this constructor returns,valid() is equal to the value ofother.valid() prior to this call, andother.valid()==false.
[edit]Parameters
| f | - | another future object to initialize with |
| other | - | astd::experimental::future object to unwrap |
[edit]Example
| This section is incomplete Reason: no example |
[edit]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 invalidfuture | constructs an emptyfuture |
[edit]See also
| constructs the future object (public member function ofstd::future<T>)[edit] |