std::ranges::not_equal_to
Определён в заголовочном файле <functional> | ||
|---|---|---|
struct not_equal_to; | (начиная с C++20) |
Функциональный объект для выполнения сравнений. Выводит типы параметров оператора вызова функции из аргументов (но не тип возвращаемого значения).
Вложенные типы
| Вложенный тип | Определение |
|---|---|
is_transparent | не определено |
Функции-члены
|
operator() | проверяет, что аргументы не равны (открытая функция-член) |
std::ranges::not_equal_to::operator()
template< class T, class U > constexpr bool operator()( T&& t, U&& u ) const; |
Эквивалентно return !ranges::equal_to{}(std::forward<T>(t), std::forward<U>(u));.
Эта перегрузка участвует в разрешении перегрузки только в том случае, если выполнено условие std::equality_comparable_with<T, U>.
Примечания
В отличие от std::not_equal_to, std::ranges::not_equal_to требует, чтобы и ==, и != были корректны (в соответствии с ограничением equality_comparable_with), и полностью определяется через std::ranges::equal_to.
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применяется к | Опубликованное поведение | Корректное поведение |
|---|---|---|---|
| LWG 3530 | C++20 | синтаксические проверки были ослаблены при сравнении указателей | ослаблены только семантические требования |
См. также
функциональный объект, реализующий x != y (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/functional/ranges/not_equal_to