![]() |
Home | Libraries | People | FAQ | More |
For a sequence seq and Polymorphic Function Object F, transform returns a new sequence with elements created by applying F to each element of seq.
template< typename Sequence, typename F > typename result_of::transform<Sequence const, F>::type transform( Sequence const& seq, F f);
| Parameter | Requirement | Description |
|---|---|---|
| seq | A model of Forward Sequence | Operation's argument |
| f | A model of unary Polymorphic Function Object where f(e) is a valid expression for each element e of seq | Transformation function |
transform(seq, f);
Return type: A model of Forward Sequence
Semantics: Returns a new sequence, containing the return values of f(e) for each element e within seq.
template< typename Sequence1, typename Sequence2, typename F > typename result_of::transform<Sequence1 const, Sequence2 const, F>::type transform( Sequence1 const& seq1, Sequence2 const& seq2, F f);
| Parameter | Requirement | Description |
|---|---|---|
| seq1 | A model of Forward Sequence | Operation's argument |
| seq2 | A model of Forward Sequence | Operation's argument |
| f | A model of binary Polymorphic Function Object where f(e1, e2) is a valid expression for each pair of elements e1 and e2 of seq1 and seq2 respectively | Transformation function |
Return type: A model of Forward Sequence.
Semantics: Returns a new sequence, containing the return values of f(e1, e2) for each pair of elements e1 and e2 within seq1 and seq2 respectively.
Constant. Returns a view which is lazily evaluated.
#include <boost/fusion/algorithm/transformation/transform.hpp>
struct triple { template<typename T> struct apply { typedef T type; }; template<typename T> T operator()(T t) const { return t * 3; }; }; ... assert(transform(make_vector(1,2,3), triple()) == make_vector(3,6,9));
| Copyright © 2001-2005 Joel de Guzman, Dan Marsden |