Namespaces
Variants

std::ranges:: less

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

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

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

Содержание

Вложенные типы

Вложенный тип Определение
is_transparent unspecified

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

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

std::ranges::less:: operator()

template < class T, class U >
constexpr bool operator ( ) ( T && t, U && u ) const ;

Для выражения std:: forward < T > ( t ) < std:: forward < U > ( u ) как expr :

  • Иначе:
  • Возвращает результат expr .
  • Если std:: totally_ordered_with < T, U > не выполняется, поведение не определено.

Эта перегрузка участвует в разрешении перегрузки только если std:: totally_ordered_with < T, U > выполняется.

Если существует выражение expr1 типа T и выражение expr2 типа U , такие что результаты сравнения expr1 и expr2 нарушают строгий полный порядок (правила определены ниже), поведение не определено.

Результаты сравнения expr1 и expr2 следуют строгому полному порядку только если ровно одно из следующих выражений равно true :

Примечания

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

Пример

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3530 C++20 syntactic checks were relaxed while comparing pointers only semantic requirements are relaxed

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

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