Defined in header <future> | ||
---|---|---|
enum class future_errc { broken_promise = /* implementation-defined */, future_already_retrieved = /* implementation-defined */, promise_already_satisfied = /* implementation-defined */, no_state = /* implementation-defined */ }; | (since C++11) |
The scoped enumeration std::future_errc
defines the error codes reported by std::future
and related classes in std::future_error
exception objects. Only four error codes are required, although the implementation may define additional error codes. Because the appropriate specialization of std::is_error_code_enum
is provided, values of type std::future_errc
are implicitly convertible to std::error_code
.
All error codes are distinct and non-zero. | (since C++14) |
Constant | Explanation |
---|---|
broken_promise | the asynchronous task abandoned its shared state |
future_already_retrieved | the contents of shared state were already accessed through std::future |
promise_already_satisfied | attempt to store a value in the shared state twice |
no_state | attempt to access std::promise or std::future without an associated shared state |
(C++11) | constructs a future error code (function) |
(C++11) | constructs a future error_condition (function) |
(C++11) | extends the type trait std::is_error_code_enum to identify future error codes (class template) |
In C++11, broken_promise
was specified to equal zero despite std::error_code
/std::error_condition
using zero to mean "no error". This was fixed in C++14.
(C++11) | holds a platform-dependent error code (class) |
(C++11) | holds a portable error code (class) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/thread/future_errc