Requisitos denominados de C++: EqualityComparable
De cppreference.com
El tipo debe funcionar con el operador ==
y el resultado debe tener una semántica estándar.
Contenido |
[editar] Requisitos
El tipo T
satisface EqualityComparable si dadas las expresiones a, b y c, de tipo T
o const T (desde C++11), las siguientes expresiones son válidas y tiene los efectos especificados:
Expresión | Tipo | Efectos |
---|---|---|
a == b | convertible implícitamente a bool (hasta C++23) |
Establece una relación de equivalencia, es decir, satisface las siguientes propiedades:
|
modelos boolean-testable (desde C++23) |
[editar] Notas
Para satisfacer este requisito, los tipos que no tienen operadores de comparación integrados deben proporcionar un operator== definido por el usuario.
Para los tipos que son tanto EqualityComparable como LessThanComparable, la biblioteca estándar de C++ hace 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).
[editar] Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
---|---|---|---|
LWG 283 | C++98 | incluso si T es EqualityComparable, losrequisitos no se aplican a los objetos const T |
Se aplican a const T en lugar de T
|
[editar] Véase también
especifica que el operador == es una relación de equivalencia (concepto) |