| std::strict_weak_order(3) | C++ Standard Libary | std::strict_weak_order(3) | 
NAME¶
std::strict_weak_order - std::strict_weak_order
Synopsis¶
 Defined in header <concepts>
  
   template< class R, class T, class U > (since C++20)
  
   concept strict_weak_order = std::relation<R, T, U>;
  
   The concept strict_weak_order<R, T, U> specifies that the relation R
    imposes a
  
   strict weak ordering on its arguments.
  
   Semantic requirements
  
   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, b and c, if r(a, b) and r(b, c) are both true
    then
  
   r(a, c) is true;
  
   * let 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.
Notes¶
The distinction between relation and strict_weak_order is purely semantic.
See also¶
* LessThanComparable
| 2024.06.10 | http://cppreference.com |