std::system_category
From cppreference.com
| ヘッダー <system_error> で定義 |
||
| const std::error_category& system_category() noexcept; |
(C++11以降) | |
オペレーティングシステムによって報告されるエラーのための、静的なエラーカテゴリオブジェクトへの参照を取得します。このオブジェクトは、仮想関数 std::error_category::name() をオーバーライドして文字列 "system" へのポインタを返す必要があります。また、POSIXの errno 値と一致するエラーコードを std::generic_category にマッピングするために、仮想関数 std::error_category::default_error_condition() をオーバーライドする必要があります。
目次 |
[編集] パラメータ
(なし)
[編集] 戻り値
std::error_category から派生した、未指定の実行時型の静的オブジェクトへの参照。
[編集] 備考
Windowsでは、system_category() は通常、一部のWindowsエラーコードをPOSIXのものにマッピングします。POSIXでは、system_category() は名前を除いて std::generic_category() と同等になる傾向があります。
[編集] 例
このコードを実行
#include <iomanip> #include <iostream> #include <string> #include <system_error> int main() { for (int const code : {EDOM, 10001}) { const std::error_condition econd = std::system_category().default_error_condition(code); std::cout << "Category: " << econd.category().name() << '\n' << "Value: " << econd.value() << '\n' << "Message: " << econd.message() << "\n\n"; } }
実行結果の例
Category: generic Value: 33 Message: Numerical argument out of domain Category: system Value: 10001 Message: Unknown error 10001
[編集] 関連項目
| (C++11) |
ジェネリックエラーカテゴリを識別する (関数) |
| (C++11) |
すべての標準的な <cerrno> マクロ定数をリストする std::error_condition 列挙型 (クラス) |