namespace std {
// C++11
enum class future_errc {
broken_promise,
future_already_retrieved,
promise_already_satisfied,
no_state
};
// C++14
enum class future_errc {
broken_promise = implementation-defined,
future_already_retrieved = implementation-defined,
promise_already_satisfied = implementation-defined,
no_state = implementation-defined
};
}
概要
future操作に関するエラー値。
列挙値 | 説明 | 対応バージョン |
---|---|---|
broken_promise |
共有状態の準備ができていない | C++11 |
future_already_retrieved |
すでにpromise オブジェクトからfuture オブジェクトを取り出している |
C++11 |
promise_already_satisfied |
promise オブジェクトに、すでに値もしくは例外オブジェクトが設定されている |
C++11 |
no_state |
promise オブジェクトが共有状態を持っていない |
C++11 |
それぞれの値は、非ゼロである(C++14以降)。
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: 4.7.0 ✅
- ICC: ??
- Visual C++: 2012 ✅
参照
- LWG2056 - future_errc enums start with value 0 (invalid value for broken_promise)
- C++11の
future_errc
は、開始値が0だった。error_code
クラスのoperator bool()
が0を正常値と見なしてしまうため、C++14ではfuture_errc
の値を実装定義とした。
- C++11の