C++ named requirements: LessThanComparable
El tipo debe funcionar con
<
operador y el resultado debe tener semántica estándar.
Contenidos |
Requisitos
El tipo
T
satisface
LessThanComparable
si dadas las expresiones
a
,
b
y
c
de tipo
T
o
const
T
(desde C++11)
, la siguiente expresión es válida y tiene sus efectos especificados:
| Expresión | Tipo | Efectos |
|---|---|---|
| a < b |
cumple
BooleanTestable
(hasta C++20) |
Establece una relación de
ordenamiento estricto débil
con las siguientes propiedades:
|
modela
boolean-testable
(desde C++20) |
Notas
Para satisfacer este requisito, los tipos que no tienen operadores de comparación incorporados deben proporcionar un operador operator < definido por el usuario .
Para los tipos que son tanto EqualityComparable como LessThanComparable , la biblioteca estándar de C++ establece una distinción entre
- Igualdad , que es el valor de la expresión a == b y
- Equivalencia , que es el valor de la expresión ! ( a < b ) && ! ( b < a ) .
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 | la convertibilidad a bool era demasiado débil para reflejar las expectativas de las implementaciones | requisitos fortalecidos |
Véase también
|
un
BinaryPredicate
que establece una relación de ordenamiento
(requerimiento con nombre) |
|
|
(C++20)
|
especifica que una
relation
impone un ordenamiento débil estricto
(concepto) |