std::future_errc
| 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) | 
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::promiseorstd::futurewithout an associated shared state | 
Non-member functions
| (C++11) | constructs a future error code (function) | 
| (C++11) | constructs a future error_condition (function) | 
Helper classes
| (C++11) | extends the type trait std::is_error_code_enumto identify future error codes(class template) | 
Notes
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.
Example
See also
| (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