std::ranges:: equal_to
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовке
<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
приводит к вызову
встроенного
operator
==
для сравнения указателей, и задан
составной тип указателя
для
t
и
u
как
P:
-
-
Для двух преобразованных указателей (типа
P), если один указатель предшествует другому в определенной реализацией строгой тотальной упорядоченности указателей , возвращает false , в противном случае возвращает true . -
Если последовательность преобразования из
TвPили последовательность преобразования изUвPне является сохраняющей равенство , поведение не определено.
-
Для двух преобразованных указателей (типа
- В противном случае:
-
- Возвращает результат 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
(шаблон класса) |