The Sortable concept specifies the common requirements of algorithms that permute sequences into ordered sequences (e.g., sort).
template <class I, class R = less<>, class P = identity>
concept bool Sortable =
Permutable<I> &&
IndirectStrictWeakOrder<R, projected<I, P>>;