std::future_errc - cppreference.com (original) (raw)

| | | | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------- | | 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.

Contents

[edit] Member constants

Enumerator Meaning
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

[edit] Non-member functions

[edit] Helper classes

[edit] 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_promise was specified to be zero which is conventionally used to mean “no error” specified to be non-zero

[edit] See also