std::equivalence_relation (C++20 起)

来自cppreference.com
< cpp‎ | concepts
在标头 <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 为等价关系:

  • 它为自反:对于所有 xr(x, x)true
  • 它为对称:对于所有 ab,当且仅当 r(b, a)truer(a, b)true
  • 它为传递:r(a, b) && r(b, c) 蕴含 r(a, c)

注解

relationequivalence_relation 间的区别是纯语义的。

引用

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