std::ranges::greater
Определено в заголовочном файле <functional> | ||
struct greater; | (начиная с 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::greater::operator()
template<class T, class U > requires std::totally_ordered_with<T, U>// с разными семантическими требованиями | ||
Сравнивает t и u. Эквивалентно returnranges::less{}(std::forward<U>(u), std::forward<T>(t));.
[править]Примечание
В отличие от std::greater, std::ranges::greater
требуются чтобы все шесть операторов сравнения <
, <=
, >
, >=
, ==
и !=
были действительными (через ограничение totally_ordered_with
) и полностью определяется в терминах std::ranges::less.
[править]Пример
Этот раздел не завершён Причина: нет примера |
[править]Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 3530 | C++20 | при сравнении указателей синтаксические проверки были ослаблены | смягчены только семантические требования |
[править]Смотрите также
функциональный объект, реализующий x > y (шаблон класса) |