Namespaces
Variants

std:: equivalence_relation

From cppreference.net
Definiert im Header <concepts>
template < class R, class T, class U >
concept equivalence_relation = std:: relation < R, T, U > ;
(seit C++20)

Das Konzept equivalence_relation<R, T, U> spezifiziert, dass die relation R eine Äquivalenzrelation auf ihre Argumente definiert.

Semantische Anforderungen

Eine Relation r ist eine Äquivalenzrelation, wenn

  • es ist reflexiv: für alle x , r(x, x) ist true ;
  • es ist symmetrisch: für alle a und b , r(a, b) ist true genau dann wenn r(b, a) ist true ;
  • es ist transitiv: r(a, b) && r(b, c) impliziert r(a, c) .

Hinweise

Der Unterschied zwischen relation und equivalence_relation ist rein semantisch.

Referenzen

  • C++23-Standard (ISO/IEC 14882:2024):
  • 18.7.6 Konzept equivalence_relation [concept.equiv]
  • C++20-Standard (ISO/IEC 14882:2020):
  • 18.7.6 Konzept equivalence_relation [concept.equiv]