C++ named requirements: EqualityComparable

The type must work with == operator and the result should have standard semantics.

# Notes

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

# Defect reports

DRApplied toBehavior as publishedCorrect behavior
LWG 283C++98even if T is EqualityComparable, therequirements did not apply to const T objectsthey apply toconst T instead of T
LWG 2114(P2167R3)C++98convertibility to bool was too weak to reflect the expectation of implementationsrequirements strengthened

# See also