```
template <class R, class T, class U>
concept bool StrictWeakOrder = Relation<R, T, U>;
```

A Relation satisfies StrictWeakOrder only if
it imposes a *strict weak ordering* on its arguments.

The term
*strict*
refers to the
requirement of an irreflexive relation (!comp(x, x) for all x),
and the term
*weak*
to requirements that are not as strong as
those for a total ordering,
but stronger than those for a partial
ordering.
If we define
equiv(a, b)
as
!comp(a, b) && !comp(b, a),
then the requirements are that
comp
and
equiv
both be transitive relations:

comp(a, b) && comp(b, c) implies comp(a, c)

equiv(a, b) && equiv(b, c) implies equiv(a, c) [

*Note:*Under these conditions, it can be shown thatequiv is an equivalence relation

comp induces a well-defined relation on the equivalence classes determined by equiv

The induced relation is a strict total ordering.

*— end note*]