operator==,!=,<,<=>(std::error_condition)_C++中文网

定义于头文件 <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 前)

比较二个 error_condition 。

1) 检查 lhsrhs 是否相等。

2) 检查 lhsrhs 是否不相等。

3) 检查 lhs 是否小于 rhs

4) 获得 lhsrhs 的三路比较结果。

5) 检查 code 是否为 cond 的语义匹配。

6) 检查 code 是否不是 cond 的语义匹配。

参数

返回值

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.value() <=> rhs.value()

5)code.category().equivalent(code.value(), cond)cond.category().equivalent(code, cond.value()) 则为 true

6) 若既非 code.category().equivalent(code.value(), cond) 亦非 cond.category().equivalent(code, cond.value()) 则为 true