A range <codeclass="computeroutput"><spanclass="identifier">X</span></code> where <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> is a model of <ahref="../../../../../../libs/iterator/doc/new-iter-concepts.html#singls-pass-iterators-lib-single-pass-iterators"target="_top">Single
<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> if <codeclass="computeroutput"><spanclass="identifier">a</span></code>
is mutable, <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_iterator</span><spanclass="special"><</span><spanclass="keyword">const</span>
<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> if <codeclass="computeroutput"><spanclass="identifier">a</span></code>
is mutable, <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_iterator</span><spanclass="special"><</span><spanclass="keyword">const</span>
is either dereferenceable or past-the-end. It is past-the-end if
and only if <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">distance</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span><spanclass="special">==</span><spanclass="number">0</span></code>.
<codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">end</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code> is at most amortized linear time, <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">begin</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code> is amortized
constant time. For most practical purposes, one can expect both to be amortized
For any Range <codeclass="computeroutput"><spanclass="identifier">a</span></code>,
<codeclass="computeroutput"><spanclass="special">[</span><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">begin</span><spanclass="special">(</span><spanclass="identifier">a</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> is a valid range, that is, <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">end</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">begin</span><spanclass="special">(</span><spanclass="identifier">a</span><spanclass="special">)</span></code> in a finite number of increments.
</p>
</td>
</tr>
<tr>
<td>
<p>
Completeness
</p>
</td>
<td>
<p>
An algorithm that iterates through the range <codeclass="computeroutput"><spanclass="special">[</span><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">begin</span><spanclass="special">(</span><spanclass="identifier">a</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>
will pass through every element of <codeclass="computeroutput"><spanclass="identifier">a</span></code>.