std::error_condition
From cppreference.com
| ヘッダー <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 を構築します(public メンバー関数) | |
| 内容を置き換えます (public メンバー関数) | |
| 内容を置き換えます (public メンバー関数) | |
error_condition を generic_category の値 0 に設定します(public メンバー関数) | |
error_condition の値を取得します(public メンバー関数) | |
この error_condition の error_category を取得します(public メンバー関数) | |
| 説明文字列を取得します (public メンバー関数) | |
| 値が非ゼロであるかをチェックします (public メンバー関数) |
[編集] 非メンバー関数
| (C++20で削除)(C++20で削除)(C++20) |
error_condition と error_code を比較します(関数) |
[編集] ヘルパークラス
| (C++11) |
列挙型を std::error_condition として識別します (クラステンプレート) |
| 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'; // typically true std::cout << (ec == std::errc::file_exists) << '\n'; // ditto std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false: // different category }
実行結果の例
true true false
[編集] 関連項目
| (C++11) |
プラットフォーム依存のエラーコードを保持する (クラス) |
| (C++11) |
エラーカテゴリの基底クラス (クラス) |
errc 値 e のエラー条件を作成します(関数) |