Namespaces
Variants

std::experimental::ranges:: less_equal

From cppreference.net
Определено в заголовочном файле <experimental/ranges/functional>
template < class T = void >

requires StrictTotallyOrdered < T > ||
Same < T, void > ||
/* < on two const T lvalues invokes a built-in operator comparing pointers */

struct less_equal ;
(ranges TS)
template <>
struct less_equal < void > ;
(ranges TS)

Функциональный объект для выполнения сравнений. Основной шаблон вызывает operator < на const lvalue типа T с инвертированным порядком аргументов и затем отрицает результат. Специализация less_equal<void> выводит типы параметров функционального оператора вызова из аргументов (но не тип возвращаемого значения).

Все специализации less_equal являются Semiregular .

Содержание

Типы членов

Тип члена Определение
is_transparent (только для члена less_equal<void> специализации) /* неопределён */

Функции-члены

operator()
проверяет, является ли первый аргумент меньше или равен второму
(public member function)

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

constexpr bool operator ( ) ( const T & x, const T & y ) const ;
(1) (член только основного шаблона less_equal<T> )
template < class T, class U >

requires StrictTotallyOrderedWith < T, U > ||
/* std::declval<T>() < std::declval<U>() разрешается в
встроенный оператор сравнения указателей */

constexpr bool operator ( ) ( T && t, U && u ) const ;
(2) (член только специализации less_equal<void> )
1) Сравнивает x и y . Эквивалентно return ! ranges:: less <> { } ( y, x ) ; .
2) Сравнивает t и u . Эквивалентно return ! ranges:: less <> { } ( std:: forward < U > ( u ) , std:: forward < T > ( t ) ) ; .

Примечания

В отличие от std::less_equal , ranges::less_equal требует, чтобы все шесть операторов сравнения < , <= , > , >= , == и != были валидными (через ограничения StrictTotallyOrdered и StrictTotallyOrderedWith ) и полностью определяется через ranges::less . Однако реализация может свободно использовать operator <= напрямую, поскольку эти концепции требуют согласованности результатов операторов сравнения.

Пример

Смотрите также

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