std::error_condition
cppreference.netから
| ヘッダ <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
(関数) |