std::experimental::ranges:: equal_to
|
Definido en el encabezado
<experimental/ranges/functional>
|
||
|
template
<
class
T
=
void
>
requires EqualityComparable
<
T
>
||
|
(ranges TS) | |
|
template
<>
struct equal_to < void > ; |
(ranges TS) | |
Objeto función para realizar comparaciones. La plantilla principal invoca
operator
==
en lvalues constantes de tipo
T
. La especialización
equal_to<void>
deduce los tipos de parámetros del operador de llamada a función de los argumentos (pero no el tipo de retorno).
Todas las especializaciones de
equal_to
son
Semiregular
.
Contenidos |
Tipos de miembros
| Tipo de miembro | Definición |
is_transparent
(miembro solo de la especialización
equal_to<void>
)
|
/* no especificado */ |
Funciones miembro
|
operator()
|
verifica si los argumentos son
iguales
(función miembro pública) |
std::experimental::ranges::equal_to:: operator()
|
constexpr
bool
operator
(
)
(
const
T
&
x,
const
T
&
y
)
const
;
|
(1) |
(miembro solo de la plantilla principal
equal_to<T>
)
|
|
template
<
class
T,
class
U
>
requires EqualityComparableWith
<
T, U
>
||
|
(2) |
(miembro solo de la especialización
equal_to<void>
)
|
t
y
u
. Equivalente a
return
std::
forward
<
T
>
(
t
)
==
std::
forward
<
U
>
(
u
)
;
, excepto cuando esa expresión se resuelve en una llamada a un
operator
==
incorporado que compara punteros.
Cuando una llamada a
(1)
o
(2)
invocaría un operador incorporado que compara punteros de tipo
P
, el resultado se determina de la siguiente manera:
-
Retorna
false
si uno de los valores (posiblemente convertidos) del primer argumento y el valor (posiblemente convertido) del segundo argumento precede al otro en el orden total estricto definido por la implementación sobre todos los valores de puntero de tipo
P. Este orden total estricto es consistente con el orden parcial impuesto por los operadores incorporados<,>,<=, y>=. - En caso contrario (ninguno precede al otro), retorna true .
El comportamiento es indefinido a menos que las secuencias de conversión de ambos
T
y
U
a
P
preserven la igualdad (ver abajo).
Preservación de igualdad
Una expresión preserva la igualdad si produce salidas iguales dadas entradas iguales.
- Las entradas de una expresión consisten en sus operandos.
- Las salidas de una expresión consisten en su resultado y todos los operandos modificados por la expresión (si los hay).
Toda expresión requerida para preservar la igualdad debe además ser estable : dos evaluaciones de dicha expresión con los mismos objetos de entrada deben tener salidas iguales en ausencia de cualquier modificación explícita interviniente de esos objetos de entrada.
Notas
A diferencia de
std::equal_to
,
ranges::equal_to
requiere que tanto
==
como
!=
sean válidos (a través de las restricciones
EqualityComparable
y
EqualityComparableWith
).
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
objeto función que implementa
x
==
y
(plantilla de clase) |