Defined in header
template < class R, class T, class U >
concept equivalence_relation = std::relation<R, T, U>;
equivalence_relation<R, T, U> specifies that the relation
R imposes an equivalence relation on its arguments.
 Semantic requirements
r is an equivalence relation if
- it is reflexive: for all
r(x, x)is true;
- it is symmetric: for all
r(a, b)is true if and only if
r(b, a)is true;
- it is transitive:
r(a, b) && r(b, c)implies
The distinction between relation and
equivalence_relation is purely semantic.