名前空間
変種
操作

std::equivalence_relation

From 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>` は、リレーション `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]
English 日本語 中文(简体) 中文(繁體)