Namespaces
Variants

std:: equivalence_relation

From cppreference.net
Определено в заголовке <concepts>
template < class R, class T, class U >
concept equivalence_relation = std:: relation < R, T, U > ;
(начиная с C++20)

Концепт equivalence_relation<R, T, U> определяет, что relation R задаёт отношение эквивалентности на своих аргументах.

Семантические требования

Отношение r является отношением эквивалентности, если

  • оно рефлексивно: для всех x , r(x, x) является true ;
  • оно симметрично: для всех a и b , r(a, b) является true тогда и только тогда, когда r(b, a) является true ;
  • оно транзитивно: r(a, b) && r(b, c) влечёт r(a, c) .

Примечания

Различие между relation и equivalence_relation является чисто семантическим.

Ссылки

  • Стандарт C++23 (ISO/IEC 14882:2024):
  • 18.7.6 Концепт equivalence_relation [concept.equiv]
  • Стандарт C++20 (ISO/IEC 14882:2020):
  • 18.7.6 Концепт equivalence_relation [concept.equiv]