#include #include #include #include #include struct square { typedef int result_type; result_type operator()(int i)const { return i*i; } }; struct foo { std::vector data; template foo(Sequence const& d) { for_each(boost::fusion::transform(d, square()), boost::bind(&std::vector::push_back, &data, _1)); } }; int main() { boost::fusion::vector vec(1, 2, 3); foo myfoo(vec); foo myfoo2(boost::fusion::transform(vec,square())); copy(myfoo.data.begin(), myfoo.data.end(), std::ostream_iterator(std::cout," ")); copy(myfoo2.data.begin(), myfoo2.data.end(), std::ostream_iterator(std::cout," ")); }