std::equivalence_relation
From cppreference.com
| ヘッダ <concepts> で定義 |
||
| template< class R, class T, class U > concept equivalence_relation = std::relation<R, T, U>; |
(C++20以降) | |
コンセプト `equivalence_relation<R, T, U>` は、リレーション `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 Concept `equivalence_relation` [concept.equiv]
- C++20 standard (ISO/IEC 14882:2020)
- 18.7.6 Concept `equivalence_relation` [concept.equiv]