me behavior as the underlying iterator except that its dereference
      operator implicitly converts the value returned by the underlying iterator's
      dereference operator to a rvalue reference: <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">move</span><span class="special">(*</span><span class="identifier">underlying_iterator</span><span class="special">)</span></code>
      It is a read-once iterator, but can have up to random