| [section:for_each for_each] |
| |
| [heading Prototype] |
| |
| `` |
| template< |
| class SinglePassRange1, |
| class SinglePassRange2, |
| class BinaryFunction |
| > |
| BinaryFunction for_each(const SinglePassRange1& rng1, |
| const SinglePassRange2& rng2, |
| BinaryFunction fn); |
| |
| template< |
| class SinglePassRange1, |
| class SinglePassRange2, |
| class BinaryFunction |
| > |
| BinaryFunction for_each(const SinglePassRange1& rng1, |
| SinglePassRange2& rng2, |
| BinaryFunction fn); |
| |
| template< |
| class SinglePassRange1, |
| class SinglePassRange2, |
| class BinaryFunction |
| > |
| BinaryFunction for_each(SinglePassRange1& rng1, |
| const SinglePassRange2& rng2, |
| BinaryFunction fn); |
| |
| template< |
| class SinglePassRange1, |
| class SinglePassRange2, |
| class BinaryFunction |
| > |
| BinaryFunction for_each(SinglePassRange1& rng1, |
| SinglePassRange2& rng2, |
| BinaryFunction fn); |
| `` |
| |
| [heading Description] |
| |
| `for_each` traverses forward through `rng1` and `rng2` simultaneously. |
| For each iteration, the element `x` is used from `rng1` and the corresponding |
| element `y` is used from `rng2` to invoke `fn(x,y)`. |
| |
| Iteration is stopped upon reaching the end of the shorter of `rng1`, or `rng2`. |
| It is safe to call this function with unequal length ranges. |
| |
| [heading Definition] |
| |
| Defined in the header file `boost/range/algorithm_ext/for_each.hpp` |
| |
| [heading Requirements] |
| |
| # `SinglePassRange1` is a model of the __single_pass_range__ Concept. |
| # `SinglePassRange2` is a model of the __single_pass_range__ Concept. |
| # `BinaryFunction` is a model of the `BinaryFunctionConcept`. |
| # `SinglePassRange1`'s value type is convertible to `BinaryFunction`'s first argument type. |
| # `SinglepassRange2`'s value type is convertible to `BinaryFunction`'s second argument type. |
| |
| [heading Complexity] |
| |
| Linear. Exactly `min(distance(rng1), distance(rng2))` applications of `BinaryFunction`. |
| |
| [endsect] |