std::experimental::ranges:: less
|
Definido en el encabezado
<experimental/ranges/functional>
|
||
|
template
<
class
T
=
void
>
requires StrictTotallyOrdered
<
T
>
||
|
(ranges TS) | |
|
template
<>
struct less < void > ; |
(ranges TS) | |
Objeto función para realizar comparaciones. La plantilla principal invoca
operator
<
en lvalues constantes de tipo
T
. La especialización
less<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
less
son
Semiregular
.
Contenidos |
Tipos de miembros
| Tipo de miembro | Definición |
is_transparent
(miembro solo de la especialización
less<void>
)
|
/* no especificado */ |
Funciones miembro
|
operator()
|
verifica si el primer argumento es
menor
que el segundo
(función miembro pública) |
std::experimental::ranges::less:: operator()
|
constexpr
bool
operator
(
)
(
const
T
&
x,
const
T
&
y
)
const
;
|
(1) |
(miembro solo de la plantilla primaria
less<T>
)
|
|
template
<
class
T,
class
U
>
requires StrictTotallyOrderedWith
<
T, U
>
||
|
(2) |
(miembro solo de la especialización
less<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
true
si el valor (posiblemente convertido) del primer argumento precede al valor (posiblemente convertido) del segundo argumento 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, retorna false .
El comportamiento es indefinido a menos que las secuencias de conversión de
T
y
U
a
P
preserven la igualdad (ver más 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 intermedia de esos objetos de entrada.
Notas
A diferencia de
std::less
,
ranges::less
requiere que los seis operadores de comparación
<
,
<=
,
>
,
>=
,
==
y
!=
sean válidos (mediante las restricciones
StrictTotallyOrdered
y
StrictTotallyOrderedWith
).
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
objeto función que implementa
x
<
y
(plantilla de clase) |