|
| |
|
| Category: utilities | | Component type: concept |
Description
A type is EqualityComparable if objects of that type can be compared for equality using operator==, and if operator== is an equivalence relation.
Refinement of
Associated types
Notation
X | A type that is a model of EqualityComparable |
x, y, z | Object of type X |
Definitions
Valid expressions
| Name | Expression | Type requirements | Return type |
| Equality | x == y | | Convertible to bool |
| Inequality | x != y | | Convertible to bool |
Expression semantics
| Name | Expression | Precondition | Semantics | Postcondition |
| Equality | x == y | x and y are in the domain of == | | |
| Inequality | x != y | x and y are in the domain of == | Equivalent to !(x == y) | |
Complexity guarantees
Invariants
| Identity | &x == &y implies x == y |
| Reflexivity | x == x |
| Symmetry | x == y implies y == x |
| Transitivity | x == y and y == z implies x == z |
Models
Notes
See also
LessThanComparable.