std:: error_condition
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
(until C++20)
(until C++20)
(C++20)
|
||||
| Helper classes | ||||
|
定義先ヘッダ
<system_error>
|
||
|
class
error_condition
;
|
(C++11以降) | |
std::error_condition
は、エラー状態を識別するプラットフォーム非依存の値を保持します。
std::error_code
と同様に、整数値と
std::error_category
によって一意に識別されますが、
std::error_code
とは異なり、値はプラットフォーム依存ではありません。
典型的な実装では、1つの整数データメンバー(値)と std::error_category へのポインタを保持します。
目次 |
メンバー関数
|
error_conditionを構築する
(公開メンバ関数) |
|
|
内容を置き換える
(公開メンバ関数) |
|
|
内容を置き換える
(公開メンバ関数) |
|
error_condition
を
generic_category
の値
0
に設定する
(公開メンバ関数) |
|
error_condition
の値を取得する
(公開メンバ関数) |
|
この
error_condition
の
error_category
を取得する
(公開メンバ関数) |
|
|
説明文字列を取得する
(公開メンバ関数) |
|
|
値が非ゼロかどうかをチェックする
(公開メンバ関数) |
非メンバー関数
|
(removed in C++20)
(removed in C++20)
(C++20)
|
error_condition
と
error_code
を比較
(関数) |
ヘルパークラス
|
(C++11)
|
列挙型を
std::error_condition
として識別する
(クラステンプレート) |
|
(C++17)
|
std::error_condition
のハッシュサポート
(クラステンプレート特殊化) |
注記
比較
は、
std::error_code
と
std::error_condition
の間で、それらのエラーカテゴリによって定義されます。特に、
std::generic_category
のエラー条件は、同じ種類のエラーを表す場合、特定のカテゴリ(例:
std::system_category
)のエラーコードと等しいと比較される可能性があります。
std::errc
値は、暗黙的な
std::error_condition
への変換を通じてエラーコードと比較できます。
#include <cerrno> #include <iostream> #include <system_error> #include <Windows.h> int main() { std::error_code ec{ERROR_FILE_EXISTS, std::system_category()}; std::error_condition econd{EEXIST, std::generic_category()}; std::cout.setf(std::ios::boolalpha); std::cout << (ec == econd) << '\n'; // 通常 true std::cout << (ec == std::errc::file_exists) << '\n'; // 同上 std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false: // 異なるカテゴリ }
出力例:
true true false
関連項目
|
(C++11)
|
プラットフォーム依存のエラーコードを保持する
(クラス) |
|
(C++11)
|
エラーカテゴリの基底クラス
(クラス) |
|
(C++11)
|
errc
値に対するエラー条件を作成する
e
(関数) |