Namespaces
Variants

std:: strict_weak_order

From cppreference.net
定義先ヘッダ <concepts>
template < class R, class T, class U >
concept strict_weak_order = std:: relation < R, T, U > ;
(C++20以降)

概念 strict_weak_order<R, T, U> は、 relation R がその引数に対して厳密弱順序を課すことを指定します。

目次

セマンティック要件

関係 r は、以下の条件を満たす場合に狭義弱順序となります

  • これは非反射的である:すべての x について、 r ( x, x ) false である;
  • これは推移的である:すべての a b および c について、 r ( a, b ) r ( b, c ) がともに true ならば、 r ( a, c ) true である;
  • e ( a, b ) ! r ( a, b ) && ! r ( b, a ) と定義すると、 e は推移的である: e ( a, b ) && e ( b, c ) e ( a, c ) を意味する。

これらの条件下では、 e が同値関係であることが示され、 r e によって決定される同値類上に厳密な全順序を誘導することが示される。

注記

relation strict_weak_order の区別は純粋に意味論的なものです。

参考文献

  • C++23規格 (ISO/IEC 14882:2024):
  • 18.7.7 コンセプト strict_weak_order [concept.strictweakorder]
  • C++20標準 (ISO/IEC 14882:2020):
  • 18.7.7 コンセプト strict_weak_order [concept.strictweakorder]

関連項目