C++ named requirements: EqualityComparable
The type must work with == operator and the result should have standard semantics.
T satisfies EqualityComparable if
- a, b and c, expressions of type
Tor (since C++11)
The following expressions must be valid and have their specified effects:
|a == b||implicitly convertible to bool|| Establishes an equivalence relation, that is, it satisfies the following properties:
To satisfy this requirement, types that do not have built-in comparison operators have to provide a user-defined operator==.
For the types that are both EqualityComparable and LessThanComparable, the C++ standard library makes a distinction between equality, which is the value of the expression a == b and equivalence, which is the value of the expression !(a < b) && !(b < a).
 Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
|DR||Applied to||Behavior as published||Correct behavior|
|LWG 283||C++98|| even if
|| they apply to |
 See also
| specifies that operator == is an equivalence relation |