命名空间
变体
操作

operator==,!=,<,<=>(std::error_condition)

来自 cppreference.com
 
 
实用程序库
语言支持
类型支持 (基本类型, RTTI)
库特性测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三方比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
 
 
定义在头文件 <system_error>
bool operator==( const std::error_condition& lhs,
                 const std::error_condition& rhs ) noexcept;
(1) (自 C++11 起)
bool operator!=( const std::error_condition& lhs,
                 const std::error_condition& rhs ) noexcept;
(2) (自 C++11 起)
(直到 C++20)
bool operator<( const std::error_condition& lhs,
                const std::error_condition& rhs ) noexcept;
(3) (自 C++11 起)
(直到 C++20)
std::strong_ordering operator<=>( const std::error_condition& lhs,
                                  const std::error_condition& rhs ) noexcept;
(4) (自 C++20 起)
bool operator==( const std::error_code& code,
                 const std::error_condition& cond ) noexcept;
(5) (自 C++11 起)
bool operator==( const std::error_condition& cond,
                 const std::error_code& code ) noexcept;
(5) (自 C++11 起)
(直到 C++20)
bool operator!=( const std::error_code& code,
                 const std::error_condition& cond ) noexcept;
(6) (自 C++11 起)
(直到 C++20)
bool operator!=( const std::error_condition& cond,
                 const std::error_code& code ) noexcept;
(6) (自 C++11 起)
(直到 C++20)

比较两个错误条件。

1) 检查 lhsrhs 是否相等。
2) 检查 lhsrhs 是否不相等。
3) 检查 lhs 是否小于 rhs
4) 获取 lhsrhs 的三方比较结果。
5) 检查 code 是否是 cond 的语义匹配。
6) 检查 code 是否不是 cond 的语义匹配。

<, <=, >, >=!= 运算符分别从 operator<=>operator== 合成。

(自 C++20 起)

[编辑] 参数

lhs, rhs, cond - 要比较的错误条件
code - 要比较的错误代码

[编辑] 返回值

1) 如果错误类别和错误值比较相等,则为 true
2) 如果错误类别或错误值比较不相等,则为 true
3) 如果 lhs.category() < rhs.category(),则为 true。否则,如果 lhs.category() == rhs.category() && lhs.value() < rhs.value(),则为 true。否则,为 false
4) 如果 lhs.category() <=> rhs.category() 不是 std::strong_ordering::equal,则为 lhs.category() <=> rhs.category()。否则,为 lhs.value() <=> rhs.value()
5) true 如果 code.category().equivalent(code.value(), cond) 或者 cond.category().equivalent(code, cond.value()) 为真。
6) true 如果 code.category().equivalent(code.value(), cond)cond.category().equivalent(code, cond.value()) 均为假。

[编辑] 参见

[虚拟]
比较 error_codeerror_condition 的等价性
(std::error_category 的虚拟公共成员函数) [编辑]
(C++20 中已移除)(C++20 中已移除)(C++20)
比较两个 error_code
(函数) [编辑]