Namespaces
Variants

std::ranges:: equal_to

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 equal_to ;
(начиная с C++20)

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

Содержание

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

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

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

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

std::ranges::equal_to:: 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:: equality_comparable_with < T, U > не выполняется, поведение не определено.

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

Примечания

По сравнению с std::equal_to , std::ranges::equal_to дополнительно требует, чтобы оператор != был допустим, и чтобы оба типа аргументов были (гомогенно) сравнимы сами с собой (через ограничение equality_comparable_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
(шаблон класса)