Spec-Zone.ru › C++

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

Определено в заголовке <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) Проверяет, равны ли lhs и rhs.
2) Проверяет, не равны ли lhs и rhs.
3) Проверяет, является ли lhs меньше rhs.
4) Получает результат трехстороннего сравнения lhs и rhs.
5) Проверяет, соответствует ли code семантически cond.
6) Проверяет, не соответствует ли code семантически cond.

Операторы <, <=, >, >=, и != синтезируются из операторов <=> и == соответственно.

(с C++20)

Параметры

lhs, rhs, cond - ситуации возникновения ошибки для сравнения
code - код ошибки для сравнения

Возвращаемое значение

1) true если категории и значения ошибок совпадают.
2) true если категории или значения ошибок не совпадают.
3) true если lhs.category() < rhs.category(). В противном случае, true если lhs.category() == rhs.category() && lhs.value() < rhs.value(). В противном случае, false.
4) lhs.category() <=> rhs.category() если это не std::strong_ordering::equal. В противном случае, 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()).

См. также

equivalent
[virtual]
сравнивает error_code и error_condition на эквивалентность
(виртуальный публичный член-функция std::error_category )
operator==operator!=operator<operator<=>
(удалено в C++20)(удалено в C++20)(C++20)
сравнивает две error_code
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/error/error_condition/operator_cmp

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API