The Permutable concept specifies the common requirements of algorithms that reorder elements in place by moving or swapping them.
template <class I> concept bool Permutable = ForwardIterator<I> && IndirectlyMovableStorable<I, I> && IndirectlySwappable<I, I>;