
This works thank you very much steven, I am now trying to implement the cartesian product of 3 sequences based on the earlier post: template<typename T> struct pair_with : mpl::pair<T,boost::mpl::_> {}; template<typename Sequence1,typename Sequence2, typename Sequence3> struct sequence_product : boost::mpl::fold< Sequence1, boost::mpl::vector0<>, boost::mpl::joint_view< boost::mpl::_1, boost::mpl::transform< Sequence2, pair_with<boost::mpl::_2> > >
{}; Rds, -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Steven Watanabe Sent: 31 May 2008 20:51 To: boost-users@lists.boost.org Subject: Re: [Boost-users] variant<> number of template arguments AMDG Hicham Mouline wrote:
It seems make_variant_over is also limited by BOOST_VARIANT_LIMIT_TYPES. This macro is 20 on 2 platforms (linux-i386-gcc-4.1.2-boost-1.34.1 and win-i386-vs2005- boost-1.35.0)
<snip>
If I add type19, making the mpc vector have 21 types, compilation fails...
The limit of variant and the limit of mpl::vector happen to be the same. For more types, try using the numbered form of mpl vector which can handle up to 50 arguments. #include <boost/mpl/vector/vector30.hpp> typedef boost::mpl::vector21<...> types; In Christ, Steven Watanabe