ference operators</a> were motivated by
    the <a href="#iterator">iterator helpers</a>, but are often useful in
    non-iterator contexts as well. Many of the redundant iterator operators
    are also arithmetic operators, so the iterator helper classes borrow many
    of the operators defined above. In fact, only two new operators need to
    be defined (the pointer-to-member <code>operator-&gt;</code> and the
    subscript <code>operator[]</code>)!</p>

    <p>The requirements for the types used to inst