Defined in header <concepts> | ||
---|---|---|
template < class R, class T, class U > concept StrictWeakOrder = std::Relation<R, T, U>; | (1) | (since C++20) |
The concept StrictWeakOrder<R, T, U>
specifies that the Relation
R
imposes a strict weak ordering on its arguments. A relation r
is a strict weak ordering if.
x
, r(x, x)
is false; a
, b
and c
, if r(a, b)
and r(b, c)
are both true then r(a, c)
is true; e(a, b)
be !r(a, b) && !r(b, a)
, then e
is transitive: e(a, b) && e(b, c)
implies e(a, c)
. Under these conditions, it can be shown that e
is an equivalence relation, and r
induces a strict total ordering on the equivalence classes determined by e
.
The distinction between Relation
and StrictWeakOrder
is purely semantic.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/concepts/StrictWeakOrder