In the description of generator expressions, the following notation is used:
fwdRngis an expression of a type
biRngis an expression of a type
rndRngis an expression of a type
predis an expression of a type that models
bi_predis an expression of a type that models
funis an expression of a type that models
old_valueare objects convertible to
n,mare integer expressions convertible to
Also note that
boost::range_value<R>::type must be implicitly convertible to
the type arguments to
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.
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
adaptor returns only a
regardless of the input.
Furthermore, the following rules apply to any expression of the form
rng | boost::adaptors::adaptor_generator
to a range
R (always left
argument) and a range adapter
(always right argument) yields a new range type which may not conform to
the same range concept as
2. The return-type of
operator|() is otherwise unspecified.
is found by Argument Dependent Lookup (ADL) because a range adaptor is
implemented in namespace
is used to add new behaviour lazily
and never modifies its left argument.
5. All iterators extracted from the left argument are extracted using qualified
6. In addition to the
may throw exceptions as a result of copying iterators. If such copying
cannot throw an exception, then neither can the whole expression.