st common
    way to implement output iterators (see, for example, insert [24.4.2] and
    stream iterators [24.5] in the standard library),
    <code>output_iterator_helper</code> supports the idiom by defining
    <code>operator*</code> and <code>operator++</code> member functions which
    just return a non-const reference to the iterator itself. Support for
    self-proxying allows us, in many cases, to reduce the task of writing an
    output iterator to writing just two member functions - an appropria