std::future_errc
|   Defined in header  <future>
  | 
||
|   enum class future_errc {     broken_promise             = /* 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.
Member constants
| 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 | 
Non-member functions
|    constructs a future error code  (function)  | |
|    constructs a future error_condition  (function)  | 
Helper classes
|    extends the type trait std::is_error_code_enum to identify future error codes  (class template)  | 
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 2056 | C++11 |  broken_promise was specified to be zero which is conventionally used to mean "no error"
 | 
specified to be non-zero | 
See also
|    (C++11)  | 
   holds a platform-dependent error code   (class)  | 
|    (C++11)  | 
   holds a portable error code  (class)  |