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>>;