
On 05/07/2006 02:19 PM, João Abecasis wrote:
Tobias Schwinger wrote:
2. I'm also missing a fusion-equivalent to mpl::unpack_args (that would be about the inverse of 1).
Actually there already is a fusion::unpack_args, alas it is [snip] Anyway, you can find this in
boost/fusion/sequence/utility/unpack_args.hpp
and use it thusly,
boost::fusion::unpack_args(f, seq);
where f is a functor or function pointer and seq is a fusion Sequence. [snip] The effect is that of invoking f with each element of seq as an argument.
The last statement might be interpreted to mean: typedef boost::fusion::vector<object, int> vector2; vector2 v2(o, 17); unpack_args(f,v2) == vector2(f(o),f(17)) instead of: unpack_args(f,v2) == f(o,17) where the above code is from that in: libs/fusion/test/sequence/unpack_args.cpp BTW, the purpose of unpack_args would be easier to see if the actual tests were more like: BOOST_TEST(f(o,17) == unpack_args( f , v2 )); instead of: BOOST_TEST(f.get() - 17 == unpack_args( f , v2 )); Then the reader would just have to look at the v2 declaration: vector2 v2(o, 17); to see the purpose, IMHO.