$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2005-12-29 23:01:41
An alternative approach to ones discussed earlier would be to use file
iteration, such as:
main.cpp-----------------------------------
#define BOOST_TYPEOF_COMPLIANT
#include <boost/typeof/typeof.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/preprocessor/iteration/iterate.hpp>
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
BOOST_TYPEOF_REGISTER_TYPE(boost::mpl::vector<>)
BOOST_TYPEOF_REGISTER_TYPE(boost::mpl::vector0<>)
# define BOOST_PP_ITERATION_LIMITS (1, 10)
# define BOOST_PP_FILENAME_1 "register_mpl.hpp"
# include BOOST_PP_ITERATE()
int main()
{
boost::mpl::vector1<boost::mpl::vector<int, boost::mpl::vector0<> > > v;
typedef BOOST_TYPEOF(v) v_type;
return 0;
}
register_mpl.hpp--------------------------------------------
#include <boost/typeof/typeof.hpp>
#define n BOOST_PP_ITERATION()
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector, n)
BOOST_TYPEOF_REGISTER_TEMPLATE(BOOST_PP_CAT(boost::mpl::vector, n), n)
#undef n
--------------
This approach can be also applied to sequences.
It would work with the current typeof.
Regards,
Arkadiy