std::strict_weak_order
提供: cppreference.com
ヘッダ <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
が同値関係を持つこと、および r
が e
によって決定される同値類に対する狭義弱順序を発生させることが示されます。
[編集] ノート
relation と strict_weak_order
の違いは純粋に意味論上のものです。