Пространства имён
Варианты
Действия

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

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(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)
 
Библиотека диагностики
Обработка исключений
Сбои обработки исключений
(до C++17*)
(до C++17*)
(C++11)(до C++17*)    
(до C++17*)
Коды ошибок
Коды ошибок
Категории исключений
(ТС TM)
Поддержка системных ошибок
(C++11)
(C++11)
Утверждения
Трассировка стека
 
std::error_condition
Функции-элементы
Функции, не являющиеся элементами
operator==operator!=operator<operator<=>
(до C++20)(до C++20)(C++20)
Вспомогательные классы
 
Определено в заголовочном файле <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.

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

(начиная с 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()).

[править] Смотрите также

[virtual]
сравнивает error_code и error_condition на эквивалентность
(virtual public of std::error_category функция-элемент) [править]
(удалено в C++20)(удалено в C++20)(C++20)
сравнивает два error_code
(функция) [править]