template <class ErrorCodeEnum>
error_code& operator=(ErrorCodeEnum e) noexcept;
概要
エラー値を代入する。
要件
is_error_code_enum<ErrorCodeEnum>::value == true
であること。
false
だった場合、この関数はオーバーロード解決から除外される。
効果
*this = make_error_code(e);
戻り値
*this
例外
投げない
例
#include <iostream>
#include <system_error>
namespace std {
template <>
struct is_error_code_enum<std::errc> : std::true_type {};
}
int main()
{
std::error_code ec;
ec = std::errc::invalid_argument;
if (ec) {
std::cout << "error" << std::endl;
}
else {
std::cout << "success" << std::endl;
}
std::cout << ec.value() << std::endl;
std::cout << ec.category().name() << std::endl;
}
xxxxxxxxxx
#include <iostream>
#include <system_error>
namespace std {
template <>
struct is_error_code_enum<std::errc> : std::true_type {};
}
int main()
{
std::error_code ec;
ec = std::errc::invalid_argument;
if (ec) {
std::cout << "error" << std::endl;
}
else {
std::cout << "success" << std::endl;
}
std::cout << ec.value() << std::endl;
std::cout << ec.category().name() << std::endl;
}
出力
error
22
generic
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: 4.6.1 ✅
- ICC: ??
- Visual C++: