[section:generate generate]

[heading Prototype]

``
template<class ForwardRange, class Generator>
ForwardRange& generate( ForwardRange& rng, Generator gen );

template<class ForwardRange, class Generator>
const ForwardRange& generate( const ForwardRange& rng, Generator gen );
``

[heading Description]

`generate` assigns the result of `gen()` to each element in range `rng`. Returns the resultant range.

[heading Definition]

Defined in the header file `boost/range/algorithm/generate.hpp`

[heading Requirements]

* `ForwardRange` is a model of the __forward_range__ Concept.
* `ForwardRange` is mutable.
* `Generator` is a model of the `GeneratorConcept`.
* The `value_type` of `SinglePassRange` is convertible to a type in `OutputIterator`'s set of value types.

[heading Precondition:]

* `out_it` is not an iterator within `rng`.
* `[out_it, out_it + distance(rng))` is a valid range.

[heading Complexity]

Linear. Exactly `distance(rng)` assignments are performed.

[endsect]


