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

From cppreference.com
< cpp‎ | error‎ | error condition

Defined in header `<system_error>` |  |
bool operator==( const std::error_condition & lhs, const std::error_condition & rhs ) noexcept; | (1) | (since C++11)
bool operator!=( const std::error_condition & lhs, const std::error_condition & rhs ) noexcept; | (2) | (since C++11) (until C++20)
bool operator<( const std::error_condition & lhs, const std::error_condition & rhs ) noexcept; | (3) | (since C++11) (until C++20)
std::strong_ordering operator<=>( const std::error_condition & lhs, const std::error_condition & rhs ) noexcept; | (4) | (since C++20)
bool operator==( const std::error_code & code, const std::error_condition & cond ) noexcept; | (5) | (since C++11)
bool operator==( const std::error_condition & cond, const std::error_code & code ) noexcept; | (5) | (since C++11) (until C++20)
bool operator!=( const std::error_code & code, const std::error_condition & cond ) noexcept; | (6) | (since C++11) (until C++20)
bool operator!=( const std::error_condition & cond, const std::error_code & code ) noexcept; | (6) | (since C++11) (until C++20)

Compares two error conditions.

1) Checks whether lhs and rhs are equal.
2) Checks whether lhs and rhs are not equal.
3) Checks whether lhs is less than rhs.
4) Obtains three-way comparison result of lhs and rhs.
5) Checks whether code is a semantic match for cond.
6) Checks whether code is not a semantic match for cond.

The `<`, `<=`, `>`, `>=`, and `!=` operators are synthesized from operator<=> and operator== respectively. | (since C++20)

### Parameters

lhs, rhs, cond | - | error conditions to compare
code | - | the error code to compare

### Return value

1) true if the error category and error value compare equal.
2) true if the error category or error value compare are not equal.
3) true if lhs.category() < rhs.category(). Otherwise, true if lhs.category() == rhs.category() && lhs.value() < rhs.value(). Otherwise, false.
4) lhs.category() <=> rhs.category() if it is not std::strong_ordering::equal. Otherwise, lhs.value() <=> rhs.value().
5) true if either code.category().equivalent(code.value(), cond) or cond.category().equivalent(code, cond.value()).
6) true if neither code.category().equivalent(code.value(), cond) nor cond.category().equivalent(code, cond.value()).

### See also

equivalent [virtual] | compares `error_code` and `error_condition` for equivalence (virtual public member function of `std::error_category`)
operator==operator!=operator<operator<=> (removed in C++20)(removed in C++20)(C++20) | compares two `error_code`s (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/error/error_condition/operator_cmp&oldid=157159"