This concept provides access to iterators that traverse in both directions
(forward and reverse). The <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_iterator</span><spanclass="special"><</span><spanclass="identifier">X</span><spanclass="special">>::</span><spanclass="identifier">type</span></code> iterator must meet all of the requirements
of <ahref="../../../../../../libs/iterator/doc/new-iter-concepts.html#bidirectional-traversal-iterators-lib-bidirectional-traversal-iterators"target="_top">Bidirectional
<codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_reverse_iterator</span><spanclass="special"><</span><spanclass="identifier">X</span><spanclass="special">>::</span><spanclass="identifier">type</span></code> if <codeclass="computeroutput"><spanclass="identifier">a</span></code>
is mutable <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_reverse_iterator</span><spanclass="special"><</span><spanclass="keyword">const</span>
Equivalent to <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_reverse_iterator</span><spanclass="special"><</span><spanclass="identifier">X</span><spanclass="special">>::</span><spanclass="identifier">type</span><spanclass="special">(</span><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">end</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">))</span></code>.
<codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_reverse_iterator</span><spanclass="special"><</span><spanclass="identifier">X</span><spanclass="special">>::</span><spanclass="identifier">type</span></code> if <codeclass="computeroutput"><spanclass="identifier">a</span></code>
is mutable, <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_reverse_iterator</span><spanclass="special"><</span><spanclass="keyword">const</span>
Equivalent to <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_reverse_iterator</span><spanclass="special"><</span><spanclass="identifier">X</span><spanclass="special">>::</span><spanclass="identifier">type</span><spanclass="special">(</span><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">begin</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">))</span></code>.
<codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">rbegin</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code> has
the same complexity as <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">end</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code> and
<codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">rend</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code> has the same complexity as <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">begin</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code> from
For any Bidirectional Range a, <codeclass="computeroutput"><spanclass="special">[</span><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">rbegin</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">),</span><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">rend</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">))</span></code>
is a valid range, that is, <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">rend</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code> is reachable from <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">rbegin</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code>
An algorithm that iterates through the range <codeclass="computeroutput"><spanclass="special">[</span><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">rbegin</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">),</span><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">rend</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">))</span></code>
will pass through every element of <codeclass="computeroutput"><spanclass="identifier">a</span></code>.