- system_error[meta header]
- std[meta namespace]
- class[meta id-type]
- cpp11[meta cpp]
namespace std {
class error_category;
}
error_category
クラスは、エラー情報を分類するための基底クラスである。
エラーコードから対応するエラーメッセージを取得する処理が異なる場合などで、error_category
クラスを派生して環境固有のエラー情報を取得するためのクラスを定義できる。
名前 | 説明 | 対応バージョン |
---|---|---|
(constructor) |
コンストラクタ | C++11 |
(destructor) |
デストラクタ | C++11 |
operator=(const error_category&) = delete |
代入演算子(使用不可) | C++11 |
default_error_condition |
エラー値と自身のカテゴリからerror_condition を生成 |
C++11 |
equivalent |
エラーコードとエラー状態の等値比較 | C++11 |
operator== |
等値比較 | C++11 |
operator!= |
非等値比較 | C++11 |
operator< |
小なり比較 | C++11 |
名前 | 説明 | 対応バージョン |
---|---|---|
name |
カテゴリ名を取得 | C++11 |
message |
エラーコードに対応するメッセージを取得 | C++11 |
#include <iostream>
#include <system_error>
#include <string>
class user_defined_error_category : public std::error_category {
public:
const char* name() const noexcept override
{
return "user defined error";
}
std::string message(int ev) const override
{
return "error message";
}
};
const std::error_category& user_defined_category()
{
static user_defined_error_category cat;
return cat;
}
int main()
{
const std::error_category& cat = user_defined_category();
std::cout << cat.name() << std::endl;
}
- std::error_category[color ff0000]
user defined error
- C++11
- Clang: ??
- GCC: 4.7.0
- ICC: ??
- Visual C++: ??