std::experimental::ranges::StrictWeakOrder
From cppreference.com
< cpp | experimental | ranges
| Defined in header <experimental/ranges/concepts> |
||
| template< class R, class T, class U > concept bool StrictWeakOrder = Relation<R, T, U>; |
(1) | (ranges TS) |
コンセプトStrictWeakOrder<R, T, U>は、RelationRが引数に対して厳密弱順序を課すことを指定します。関係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とStrictWeakOrderの違いは、純粋に意味論的なものです。