std::StrictWeakOrder
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.
- it is irreflexive: for all
x,r(x, x)is false; - it is transitive: for all
a,bandc, ifr(a, b)andr(b, c)are both true thenr(a, c)is true; - let
e(a, b)be!r(a, b) && !r(b, a), theneis transitive:e(a, b) && e(b, c)impliese(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.
Notes
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