Namespaces
Variants

std::experimental::ranges:: StrictWeakOrder

From cppreference.net
Défini dans l'en-tête <experimental/ranges/concepts>
template < class R, class T, class U >
concept bool StrictWeakOrder = Relation < R, T, U > ;
(1) (ranges TS)

Le concept StrictWeakOrder<R, T, U> spécifie que la Relation R impose un ordre strict faible sur ses arguments. Une relation r est un ordre strict faible si

  • elle est irréflexive : pour tout x , r(x, x) est faux ;
  • elle est transitive : pour tous a , b et c , si r(a, b) et r(b, c) sont tous deux vrais alors r(a, c) est vrai ;
  • soit e(a, b) défini comme !r(a, b) && !r(b, a) , alors e est transitive : e(a, b) && e(b, c) implique e(a, c) .

Dans ces conditions, on peut montrer que e est une relation d'équivalence, et r induit un ordre total strict sur les classes d'équivalence déterminées par e .

Notes

La distinction entre Relation et StrictWeakOrder est purement sémantique.