[Fusion] transform with more than 2 parameters, at_c on arithmetic types
I need to make a function that takes a N-ary function object F and N+1 fusion sequence R, S0, .., Sn-1 and do, for each element of those sequences : at_c<i>(R) = F( at_c<i>(S0), .., at_c<i>(Sn-1) ); I tried to use combo fo zip+transform but I failed miserabily. So is there anyway to do this beside writing a map function by hand using Boost.PP ? More over, I want my map function to have some of its argumetns being arithmetic types. However fusion::at_c<N>(T) with T arithmetic fails cause T is tagged as non_fusion_tag. Is it possible, without ill effects to add the support for non-fusion type for at as in : namespace boost { namespace fusion { namespace extension { template<> struct at_impl<non_fusion_tag> { template<class T,class N> struct apply { typedef typename mpl::if_c< is_const<T>::value, T const&, T& >::type type; static type call(T& seq) { return seq; } }; }; } } } Or is it better for me to do my own at that tag-dispatch between fusion type and non-fusion type ? -- ___________________________________________ Joel Falcou - Assistant Professor PARALL Team - LRI - Universite Paris Sud XI Tel : (+33)1 69 15 66 35
participants (1)
-
joel