22 Iterators library [iterators]

22.5 Iterator adaptors [predef.iterators]

22.5.3 Move iterators [move.iterators]

22.5.3.2 Requirements [move.iter.requirements]

The template parameter Iterator shall satisfy the Cpp17InputIterator requirements ([input.iterators]).
Additionally, if any of the bidirectional or random access traversal functions are instantiated, the template parameter shall satisfy the Cpp17BidirectionalIterator requirements ([bidirectional.iterators]) or Cpp17RandomAccessIterator requirements ([random.access.iterators]), respectively.