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

std::ranges::less_equal

Материал из cppreference.com
< cpp‎ | utility‎ | functional
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, 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++11)
(C++11)
Применение частичных функций
(C++20)(C++23)
(C++11)
Вызов функции
(C++17)(C++23)
Объект идентичности функции
(C++20)
Обёртки ссылок
(C++11)(C++11)
Прозрачные обёртки операторов
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Отрицатели
(C++17)
Искатели
Ограниченные компараторы
ranges::less_equal
(C++20)
Старые привязки и адаптеры
(до C++17*)
(до C++17*)
(до C++17*)
(до C++17*)
(до C++17*)(до C++17*)(до C++17*)(до C++17*)
(до C++20*)
(до C++20*)
(до C++17*)(до C++17*)
(до C++17*)(до C++17*)

(до C++17*)
(до C++17*)(до C++17*)(до C++17*)(до C++17*)
(до C++20*)
(до C++20*)
 
Определено в заголовочном файле <functional>
struct less_equal;
(начиная с C++20)

Функциональный объект для выполнения сравнений. Выводит типы параметров оператора вызова функции из аргументов (но не тип возвращаемого значения).

Содержание

[править] Определяемый реализацией строгий общий порядок указателей

Оператор вызова функции выдаёт определённый реализацией строгий общий порядок указателей, если оператор < между аргументами вызывает встроенный оператор сравнения для указателей, даже если встроенный < оператор нет.

Строгий общий порядок, определяемый реализацией, согласуется с частичным порядком, налагаемым встроенными операторами сравнения (<=>, <, >, <= и >=), и согласуется со следующими стандартными функциональными объектами:

[править] Типы элементы

Тип элемент Определение
is_transparent /* не определено */

[править] Функции-элементы

operator()
проверяет, является ли первый аргумент меньшим или равным второму
(public функция-элемент)

std::ranges::less_equal::operator()

template< class T, class U >

    requires std::totally_ordered_with<T, U> // с разными семантическими требованиями

constexpr bool operator()(T&& t, U&& u) const;

Сравнивает t и u. Эквивалент return !ranges::less{}(std::forward<U>(u), std::forward<T>(t));.

[править] Примечание

В отличие от std::less_equal, std::ranges::less_equal требует, чтобы все шесть операторов сравнения <, <=, >, >=, == и != были действительными (через ограничение totally_ordered_with) и полностью определяется в терминах std::ranges::less.

[править] Пример

[править] Отчёты о дефектах

Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:

Номер Применён Поведение в стандарте Корректное поведение
LWG 3530 C++20 при сравнении указателей синтаксические проверки были ослаблены смягчены только семантические
требования

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

функциональный объект, реализующий x <= y
(шаблон класса) [править]