Defined in header
output_iterator concept is a refinement of
input_or_output_iterator, adding the requirement that it can be used to write values of type and value category encoded by
equality_comparable is not required.
 Semantic requirements
E be an expression such that decltype((E)) is
i be a dereferenceable object of type
I. std::output_iterator<I, T> is modeled only if all the concepts it subsumes are modeled, and *i++ = E; has effects equivalent to *i = E; ++i;.
 Equality preservation
Unlike the LegacyOutputIterator requirements, the
output_iterator concept does not require that the iterator category tag be defined.
Algorithms on output iterators should be single pass.
 See also
| specifies that objects of a type can be incremented and dereferenced |