std::ranges:: less
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<functional>
|
||
|
struct
less
;
|
(desde C++20) | |
Objeto función para realizar comparaciones. Deducir los tipos de parámetros del operador de llamada a función a partir de los argumentos (pero no el tipo de retorno).
Contenidos |
Tipos anidados
| Tipo anidado | Definición |
is_transparent
|
unspecified |
Funciones miembro
|
operator()
|
verifica si el primer argumento es
menor
que el segundo
(función miembro pública) |
std::ranges::less:: operator()
|
template
<
class
T,
class
U
>
constexpr bool operator ( ) ( T && t, U && u ) const ; |
||
Dada la expresión std:: forward < T > ( t ) < std:: forward < U > ( u ) como expr :
-
Si
expr
resulta en una llamada al
operador incorporado
operator
<
que compara punteros, dado el
tipo de puntero compuesto
de
t
y
u
como
P:
-
-
Si el
t
convertido precede al
u
convertido (ambos de tipo
P) en el orden total estricto definido por la implementación sobre punteros , devuelve true , de lo contrario devuelve false . -
Si la secuencia de conversión de
TaPo la secuencia de conversión deUaPno es que preserva la igualdad , el comportamiento es indefinido.
-
Si el
t
convertido precede al
u
convertido (ambos de tipo
- En caso contrario:
-
- Devuelve el resultado de expr .
- Si std:: totally_ordered_with < T, U > no se cumple, el comportamiento es indefinido.
Esta sobrecarga participa en la resolución de sobrecarga solo si std:: totally_ordered_with < T, U > se satisface.
Si existe una expresión
expr1
de tipo
T
y una expresión
expr2
de
U
, tal que los resultados de comparación de
expr1
y
expr2
violan el
orden total estricto
(las reglas se definen a continuación), el comportamiento es indefinido.
Los resultados de comparación de expr1 y expr2 siguen un orden total estricto solo si exactamente una de las siguientes expresiones es true :
- std :: ranges:: less { } ( expr1, expr2 )
- std :: ranges:: less { } ( expr2, expr1 )
- std :: ranges:: equal_to { } ( expr1, expr2 )
Notas
A diferencia de
std::less
,
std::ranges::less
requiere que los seis operadores de comparación
<
,
<=
,
>
,
>=
,
==
y
!=
sean válidos (mediante la restricción
totally_ordered_with
).
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3530 | C++20 | se relajaron las verificaciones sintácticas al comparar punteros | solo se relajan los requisitos semánticos |
Véase también
|
objeto función que implementa
x
<
y
(plantilla de clase) |