constexpr error_category() noexcept; // (1) C++14
error_category(const error_category&) = delete; // (2)
概要
- (1) : デフォルトコンストラクタ。
error_category
クラスのオブジェクトを構築する。 - (2) : コピーコンストラクタ。コピー不可。これによって、ムーブコンストラクタも禁止される。
例
#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;
}
xxxxxxxxxx
#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;
}
出力
user defined error
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: 4.6.1 ✅
- ICC: ??
- Visual C++: 2010 (ただしnoexceptは使用不可) ✅