名前空間
変種
操作

std::strict_weak_order

提供: cppreference.com
< cpp‎ | concepts
ヘッダ <concepts> で定義
template < class R, class T, class U >
concept strict_weak_order = std::relation<R, T, U>;
(1) (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 が同値関係を持つこと、および re によって決定される同値類に対する狭義弱順序を発生させることが示されます。

[編集] ノート

relationstrict_weak_order の違いは純粋に意味論上のものです。