A class or pointer type
X
meets the requirements of an output iterator
if X meets the Cpp17Iterator requirements ([iterator.iterators])
and the expressions in Table 88
are valid and have the indicated semantics.
Table 88: Cpp17OutputIterator requirements (in addition to Cpp17Iterator) [tab:outputiterator]
Recommended practice: The implementation of an algorithm on output iterators
should never attempt to pass through the same iterator twice;
such an algorithm should be a single-pass algorithm.