std::output_iterator(3)

NAME
std::output_iterator - std::output_iterator

Synopsis
   Defined in header <iterator>
   template< class I, class T >
       concept output_iterator =
           std::input_or_output_iterator<I> &&
           std::indirectly_writable<I, T> && (since C++20)
           requires(I i, T&& t) {
               *i++ = std::forward<T>(t); /* not required to be
   equality-preserving */
           };
   The 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 T (via indirectly_writable). equality_comparable is not required.

Notes
   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
   input_or_output_iterator specifies that objects of a type can be incremented and
   (C++20) dereferenced
                        (concept)