std:: error_condition
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
(until C++20)
(until C++20)
(C++20)
|
||||
| Helper classes | ||||
|
定义于头文件
<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
(函数) |