std::error_condition
来自 zh.cppreference.net
| 定义于头文件 <system_error>
|
||
class error_condition;
|
(自 C++11 起) | |
std::error_condition 持有标识错误条件的平台无关值。如 std::error_code, 它由整数值和 std::error_category 唯一标识,但与 std::error_code 不同,该值不是平台相关的。
典型实现持有一个整数数据成员(值)和一个指向 std::error_category 的指针。
成员函数
构造
error_condition
对象
(公开成员函数) |
|
|
替换内容
(公开成员函数) |
|
|
替换内容
(公开成员函数) |
|
将
error_condition
设置为
generic_category
中的值
0
(公开成员函数) |
|
获取
error_condition
的值
(公开成员函数) |
|
获取此
error_condition
的
error_category
(公开成员函数) |
|
|
获取说明性字符串
(公开成员函数) |
|
|
检查值是否非零
(公开成员函数) |
非成员函数
|
(C++20中移除)
(C++20中移除)
(C++20)
|
比较
error_condition
与
error_code
(函数) |
辅助类
|
(C++11)
|
标识枚举类型为
std::error_condition
错误条件枚举
(类模板) |
|
(C++17)
|
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'; // 通常为 true std::cout << (ec == std::errc::file_exists) << '\n'; // 同上 std::cout << (ec == make_error_code(std::errc::file_exists)) << '\n'; // false: // 不同类别 }
可能的输出:
true true false
参见
|
(C++11)
|
保存平台相关的错误代码
(类) |
|
(C++11)
|
错误类别的基类
(类) |
|
(C++11)
|
为
errc
值创建错误条件
e
(函数) |