#include #include "boost/mpl/vector.hpp" #include "boost/mpl/map.hpp" #include "boost/mpl/placeholders.hpp" #include "boost/mpl/fold.hpp" #include "boost/mpl/clear.hpp" #include "boost/mpl/insert.hpp" using namespace boost::mpl; using placeholders::_1; using placeholders::_2; /*template struct tag { template operator()(type t,v val) { return index; }; }; */ template struct cont { typedef clear > >::type emptymap; template struct index { typedef int type; void p() { std::cout << typeid(T) << endl; }; }; typedef typename fold > > >::type ftype; //FE(i, tags) // map // index template int get() { }; template ftype::type operator()(tag &z) { ftype::type } }; struct name {}; cont > cz; main() { }