Namespaces
Variants

std:: equivalence_relation

From cppreference.net
Défini dans l'en-tête <concepts>
template < class R, class T, class U >
concept equivalence_relation = std:: relation < R, T, U > ;
(depuis C++20)

Le concept equivalence_relation<R, T, U> spécifie que la relation R impose une relation d'équivalence sur ses arguments.

Exigences sémantiques

Une relation r est une relation d'équivalence si

  • il est réflexif : pour tout x , r(x, x) est true ;
  • il est symétrique : pour tous a et b , r(a, b) est true si et seulement si r(b, a) est true ;
  • il est transitif : r(a, b) && r(b, c) implique r(a, c) .

Notes

La distinction entre relation et equivalence_relation est purement sémantique.

Références

  • Norme C++23 (ISO/IEC 14882:2024) :
  • 18.7.6 Concept equivalence_relation [concept.equiv]
  • Norme C++20 (ISO/CEI 14882:2020) :
  • 18.7.6 Concept equivalence_relation [concept.equiv]