22 Iterators library [iterators]

22.3 Iterator requirements [iterator.requirements]

22.3.7 Common algorithm requirements [alg.req]

22.3.7.6 Concept Permutable [alg.req.permutable]

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