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.
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) |
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 == by - Equivalencia, que es el valor de la expresión
!(a < b) && !(b < a).
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 Ten lugar de T
|
Véase también
especifica que el operador == es una relación de equivalencia (concepto) |