std::future_errc
    <future> 
     broken_promise             = /* implementation-defined */,
    future_already_retrieved   = /* implementation-defined */,
    promise_already_satisfied  = /* implementation-defined */,
    no_state                   = /* implementation-defined */
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.
Contents
[edit] Member constants
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
[edit] Non-member functions
[edit] Helper classes
(class template) [edit]
[edit] 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 2056 | C++11 | broken_promisewas specified to be zero which is conventionally used to mean "no error" | specified to be non-zero |