ecessary restriction, the standard requires
    <code>difference_type</code> and <code>value_type</code> of any output
    iterator to be <code>void</code> (24.3.1 [lib.iterator.traits]), and
    <code>output_iterator_helper</code> template respects this requirement.
    Also, output iterators in the standard have void <code>pointer</code> and
    <code>reference</code> types, so the <code>output_iterator_helper</code>
    does the same.</p>

    <p><a name="2">[2]</a> As self-proxying is the easiest and mo