<codeclass="computeroutput"><spanclass="identifier">value</span></code>, <codeclass="computeroutput"><spanclass="identifier">new_value</span></code> and <codeclass="computeroutput"><spanclass="identifier">old_value</span></code>
are objects convertible to <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_value</span><spanclass="special"><</span><spanclass="identifier">R</span><spanclass="special">>::</span><spanclass="identifier">type</span></code>
<codeclass="computeroutput"><spanclass="identifier">n</span><spanclass="special">,</span><spanclass="identifier">m</span></code> are integer expressions convertible
to <codeclass="computeroutput"><spanclass="identifier">range_difference</span><spanclass="special"><</span><spanclass="identifier">R</span><spanclass="special">>::</span><spanclass="identifier">type</span></code>
Also note that <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">range_value</span><spanclass="special"><</span><spanclass="identifier">R</span><spanclass="special">>::</span><spanclass="identifier">type</span></code> must be implicitly convertible to
the type arguments to <codeclass="computeroutput"><spanclass="identifier">pred</span></code>,
<codeclass="computeroutput"><spanclass="identifier">bi_pred</span></code> and <codeclass="computeroutput"><spanclass="identifier">fun</span></code>.
</p>
<p>
Range Category in the following adaptor descriptions refers to the minimum
range concept required by the range passed to the adaptor. The resultant
range is a model of the same range concept as the input range unless specified
otherwise.
</p>
<p>
Returned Range Category is the concept of the returned range. In some cases
the returned range is of a lesser category than the range passed to the
adaptor. For example, the <codeclass="computeroutput"><spanclass="identifier">filtered</span></code>
adaptor returns only a <codeclass="computeroutput"><spanclass="identifier">ForwardRange</span></code>
regardless of the input.
</p>
<p>
Furthermore, the following rules apply to any expression of the form
is found by Argument Dependent Lookup (ADL) because a range adaptor is
implemented in namespace <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">adaptors</span></code>.
is used to add new behaviour <spanclass="emphasis"><em><spanclass="bold"><strong>lazily</strong></span></em></span>
and never modifies its left argument.
</p>
<p>
5. All iterators extracted from the left argument are extracted using qualified
calls to <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">begin</span><spanclass="special">()</span></code>
and <codeclass="computeroutput"><spanclass="identifier">boost</span><spanclass="special">::</span><spanclass="identifier">end</span><spanclass="special">()</span></code>.
</p>
<p>
6. In addition to the <codeclass="computeroutput"><spanclass="keyword">throw</span></code>-clauses