I want to apply some arbitrary function F on each element of a sequence through myfun class inherited from transform_view. I am unable to output the elements of the resultant sequence. Below is the whole code of my program #include <boost/mpl/int.hpp> #include <boost/mpl/apply.hpp> #include <boost/mpl/list_c.hpp> #include <boost/mpl/for_each.hpp> #include <boost/mpl/transform_view.hpp> #include <iostream> using namespace boost::mpl; namespace mpl = boost::mpl; struct mysquare { template< typename U > void operator()(U x) { static const int value = x*x; } }; struct value_printer { template< typename U > void operator()(U x) { std::cout << x << " "; } }; template<class F, class Seq> struct myfun:transform_view<Seq,F> {}; int main() { using namespace std; typedef list_c<int,0,1,2,3,4,5> numbers; typedef myfun<mysquare,numbers>::type newnum; for_each<numbers>(value_printer()); // for_each<newnum>(value_printer()); // I don,t know what transform_view return } |