Re: [Boost-users] [Fusion] transform / transform_view / binary sequence iteration

-----Original Message----- From: "Thomas Taylor" [thomas.taylor@univie.ac.at] Date: 02/03/2010 11:49 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] [Fusion] transform / transform_view / binary sequence iteration Hi! Started out with tuple but soon moved to fusion as it suits my needs much better, so thanks for fusion! My problem is the following: list<A,B,C> seq2(1,2,3); list<W<A>,W<B>,W<C> > seq1; struct fa { typedef unsigned int result_type; template <typename S1, typename S2> result_type operator()(const S1& s1, const S2& s2) const { return s1(s2); // this calls W<A>(A), W<B>(B), W<C>(C) } }; struct fb { typedef std::vector<unsigned int> result_type; template <typename T> result_type operator()(const result_type& a, const T& t) const { result_type a2(a); a2.push_back(t); return a2; } }; accumulate( transform(seq1,seq2,fa()),fb() ); /* The above yields an error: no matching function for call to ‘accumulate(boost::fusion::transform_view<const boost::fusion::list<W<double>, W<double>, W<double>, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_>, const boost::fusion::list<double, double, double, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_>, database::histogram::fb>) */ How can I use a transform_view (the result of transform(S1,S2,F)) as input for accumulate? Thank you, Thomas _______________________________________________ In my basic experience, this has been a matter of constness. Checkout fusion docs and make sure you follow exactly the function signatures. Oh! you need an initial state for accumulate() rds,
participants (2)
-
Hicham Mouline
-
Thomas Taylor