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