std::ranges::not_equal_to
| Определено в заголовочном файле <functional>
|
||
struct not_equal_to; |
(начиная с C++20) | |
Функциональный объект для выполнения сравнений. Выводит типы параметров оператора вызова функции из аргументов (но не тип возвращаемого значения).
Определяемый реализацией строгий общий порядок указателей
Оператор вызова функции выдаёт определённый реализацией строгий общий порядок указателей, если оператор = между аргументами вызывает встроенный оператор сравнения для указателей, даже если встроенный = оператор нет.
Строгий общий порядок, определяемый реализацией, согласуется с частичным порядком, налагаемым встроенными операторами сравнения (<=>, <, >, <= и >=), и согласуется со следующими стандартными функциональными объектами:
- std::less, std::greater, std::less_equal и std::greater_equal, когда аргумент шаблона тип указателя или
void
- std::ranges::equal_to, std::ranges::not_equal_to, std::ranges::less, std::ranges::greater, std::ranges::less_equal, std::ranges::greater_equal и std::compare_three_way
Типы лементы
| Тип элемент | Определение |
is_transparent
|
/* не определено */ |
Функции-элементы
operator() |
проверяет, что аргументы не равны (public функция-элемент) |
std::ranges::not_equal_to::operator()
<tbody> </tbody> template< class T, class U > requires std::equality_comparable_with<T, U> // с различными симантическими требованиями constexpr bool operator()(T&& t, U&& u) const; |
||
Сравнивает t и u. Эквивалентно return !ranges::equal_to{}(std::forward<T>(t), std::forward<U>(u));.
Примечание
В отличие от std::not_equal_to, std::ranges::not_equal_to требует, чтобы оба == и != были действительными (через ограничение equality_comparable_with) и полностью определяется в терминах std::ranges::equal_to.
Пример
| Этот раздел не завершён Причина: нет примера |
Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| LWG 3530 | C++20 | при сравнении указателей синтаксические проверки были ослаблены | смягчены только семантические требования |
Смотрите также
функциональный объект, реализующий x != y (шаблон класса) |