std::experimental::future<T>::future
From cppreference.com
< cpp | experimental | future
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Experimental
Filesystem library (filesystem TS)
Library fundamentals (library fundamentals TS)
Library fundamentals 2 (library fundamentals TS v2)
Library fundamentals 3 (library fundamentals TS v3)
Extensions for parallelism (parallelism TS)
Extensions for parallelism 2 (parallelism TS v2)
Extensions for concurrency (concurrency TS)
Extensions for concurrency 2 (concurrency TS v2)
Concepts (concepts TS)
Ranges (ranges TS)
Reflection (reflection TS)
Mathematical special functions (special functions TR)
Extensions for concurrency
std::future extensions
Latches and barriers
Atomic smart pointers
future() noexcept;
(1)
future( std::experimental::future <T>&& f ) noexcept;
(2)
future( const std::experimental::future <T>& ) = delete;
(3)
future( std::experimental::future <std::experimental::future <T>> && other ) noexcept;
(4)
1) Default constructor. Constructs an empty
future
object that does not refer to a shared state.2) Constructs a
future
object, transferring the shared state held by f, if any. After construction, f.valid() is false.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 and other.get() are both ready. The value or exception from other.get() is stored in the shared state associated with the resulting
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
future
object.
After this constructor returns, valid() is equal to the value of other.valid() prior to this call, and other.valid() == false.
Contents
[edit] Parameters
f
-
another future object to initialize with
other
-
a
std::experimental::future
object to unwrap
[edit] Example
This section is incomplete
Reason: no example
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 invalid future
|
constructs an empty future
|