Thanks for replying Jeff. I did try without the ::type's as shown below, but this fails to compile as well. Kind regards, Peter //------------------------------------- #include <boost/mpl/if.hpp> #include <boost/mpl/int.hpp> #include <boost/mpl/fold.hpp> #include <boost/mpl/pair.hpp> #include <boost/mpl/push_back.hpp> #include <boost/mpl/vector.hpp> namespace mpl = boost::mpl; struct tag1 {}; struct tag2 {}; template <typename T> struct is_tag1 : boost::false_type {}; template <> struct is_tag1<tag1> : boost::true_type {}; int main() { typedef mpl::vector< mpl::pair<tag1, mpl::int_<1> >, mpl::pair<tag2, mpl::int_<2> >, mpl::pair<tag1, mpl::int_<3> > > initial_vector; typedef typename mpl::fold< initial_vector, mpl::pair<mpl::vector<>, mpl::vector<> >, mpl::if_< is_tag1<mpl::first<mpl::_2> >, mpl::push_back< mpl::first<mpl::_1>, mpl::second<mpl::_2> >, mpl::push_back< mpl::second<mpl::_1>, mpl::second<mpl::_2> > > >::type sorted_pair; return 0; } //------------------------------------- $ g++4 -Wall -I ../boost/ -o test test.cpp test.cpp: In function 'int main()': test.cpp:28: error: using 'typename' outside of template ../boost/boost/mpl/pair.hpp: At global scope: ../boost/boost/mpl/pair.hpp: In instantiation of 'boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >': ../boost/boost/mpl/aux_/has_type.hpp:20: instantiated from 'const bool boost::mpl::aux::has_type<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::bool_<true> >::value' ../boost/boost/mpl/aux_/has_type.hpp:20: instantiated from 'boost::mpl::aux::has_type<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::bool_<true> >' ../boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp:39: instantiated from 'boost::mpl::quote1<boost::mpl::second, mpl_::void_>::apply<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:39: instantiated from 'boost::mpl::apply_wrap1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:144: instantiated from 'boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >::apply<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:80: instantiated from 'boost::mpl::apply_wrap5<boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:160: instantiated from 'boost::mpl::aux::resolve_bind_arg<boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:207: instantiated from 'boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >::apply<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:80: instantiated from 'boost::mpl::apply_wrap5<boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:223: instantiated from 'boost::mpl::aux::resolve_bind_arg<boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:508: instantiated from 'boost::mpl::bind3<boost::mpl::quote3<boost::mpl::if_, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<is_tag1, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > > >::apply<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49: instantiated from 'boost::mpl::apply_wrap2<boost::mpl::protect<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::if_, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<is_tag1, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > > >, 0>, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> > >' ../boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp:73: instantiated from 'boost::mpl::apply2<boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2>
, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > >, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> > >' ../boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp:89: instantiated from 'boost::mpl::aux::fold_impl<3, boost::mpl::v_iter<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0l>, boost::mpl::v_iter<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 3l>, boost::mpl::pair<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > > >' ../boost/boost/mpl/fold.hpp:39: instantiated from 'boost::mpl::fold<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::pair<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > > >' test.cpp:42: instantiated from here ../boost/boost/mpl/pair.hpp:56: error: no type named 'second' in 'struct boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>' ../boost/boost/mpl/push_back.hpp: In instantiation of 'boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >': ../boost/boost/mpl/aux_/has_type.hpp:20: instantiated from 'const bool boost::mpl::aux::has_type<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, mpl_::bool_<true> >::value' ../boost/boost/mpl/aux_/has_type.hpp:20: instantiated from 'boost::mpl::aux::has_type<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, mpl_::bool_<true> >' ../boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp:56: instantiated from 'boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>::apply<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49: instantiated from 'boost::mpl::apply_wrap2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:207: instantiated from 'boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >::apply<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:80: instantiated from 'boost::mpl::apply_wrap5<boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:223: instantiated from 'boost::mpl::aux::resolve_bind_arg<boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:508: instantiated from 'boost::mpl::bind3<boost::mpl::quote3<boost::mpl::if_, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<is_tag1, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > > >::apply<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49: instantiated from 'boost::mpl::apply_wrap2<boost::mpl::protect<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::if_, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<is_tag1, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > > >, 0>, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> > >' ../boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp:73: instantiated from 'boost::mpl::apply2<boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> , boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > >, boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, boost::mpl::pair<tag2, mpl_::int_<2> > >' ../boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp:89: instantiated from 'boost::mpl::aux::fold_impl<3, boost::mpl::v_iter<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0l>, boost::mpl::v_iter<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 3l>, boost::mpl::pair<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > > >' ../boost/boost/mpl/fold.hpp:39: instantiated from 'boost::mpl::fold<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::pair<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > > >' test.cpp:42: instantiated from here ../boost/boost/mpl/push_back.hpp:32: error: no class template named 'apply' in 'struct boost::mpl::push_back_impl<boost::mpl::non_sequence_tag>' ../boost/boost/mpl/pair.hpp: In instantiation of 'boost::mpl::first<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >': ../boost/boost/mpl/aux_/has_type.hpp:20: instantiated from 'const bool boost::mpl::aux::has_type<boost::mpl::first<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >, mpl_::bool_<true> >::value' ../boost/boost/mpl/aux_/has_type.hpp:20: instantiated from 'boost::mpl::aux::has_type<boost::mpl::first<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >, mpl_::bool_<true> >' ../boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp:39: instantiated from 'boost::mpl::quote1<boost::mpl::first, mpl_::void_>::apply<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:39: instantiated from 'boost::mpl::apply_wrap1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:144: instantiated from 'boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> ::apply<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:80: instantiated from 'boost::mpl::apply_wrap5<boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:160: instantiated from 'boost::mpl::aux::resolve_bind_arg<boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:207: instantiated from 'boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > ::apply<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:80: instantiated from 'boost::mpl::apply_wrap5<boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:223: instantiated from 'boost::mpl::aux::resolve_bind_arg<boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:508: instantiated from 'boost::mpl::bind3<boost::mpl::quote3<boost::mpl::if_, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<is_tag1, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > > ::apply<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49: instantiated from 'boost::mpl::apply_wrap2<boost::mpl::protect<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::if_, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<is_tag1, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > > >, 0>, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> > ' ../boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp:73: instantiated from 'boost::mpl::apply2<boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> , boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > >, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> > ' ../boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp:91: instantiated from 'boost::mpl::aux::fold_impl<3, boost::mpl::v_iter<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0l>, boost::mpl::v_iter<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 3l>, boost::mpl::pair<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > > >' ../boost/boost/mpl/fold.hpp:39: instantiated from 'boost::mpl::fold<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::pair<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > > >' test.cpp:42: instantiated from here ../boost/boost/mpl/pair.hpp:43: error: no type named 'first' in 'struct boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >' ../boost/boost/mpl/push_back.hpp: In instantiation of 'boost::mpl::push_back<boost::mpl::first<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >, mpl_::int_<3> >': ../boost/boost/mpl/aux_/has_type.hpp:20: instantiated from 'const bool boost::mpl::aux::has_type<boost::mpl::push_back<boost::mpl::first<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >, mpl_::int_<3> >, mpl_::bool_<true> ::value' ../boost/boost/mpl/aux_/has_type.hpp:20: instantiated from 'boost::mpl::aux::has_type<boost::mpl::push_back<boost::mpl::first<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >, mpl_::int_<3> >, mpl_::bool_<true> >' ../boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp:56: instantiated from 'boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>::apply<boost::mpl::first<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >, mpl_::int_<3> >' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49: instantiated from 'boost::mpl::apply_wrap2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::first<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> > >, mpl_::int_<3> >' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:207: instantiated from 'boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > ::apply<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:80: instantiated from 'boost::mpl::apply_wrap5<boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:223: instantiated from 'boost::mpl::aux::resolve_bind_arg<boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp:508: instantiated from 'boost::mpl::bind3<boost::mpl::quote3<boost::mpl::if_, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<is_tag1, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > > ::apply<boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na>' ../boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49: instantiated from 'boost::mpl::apply_wrap2<boost::mpl::protect<boost::mpl::bind3<boost::mpl::quote3<boost::mpl::if_, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<is_tag1, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::first, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > >, boost::mpl::bind2<boost::mpl::quote2<boost::mpl::push_back, mpl_::void_>, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<1> >, boost::mpl::bind1<boost::mpl::quote1<boost::mpl::second, mpl_::void_>, mpl_::arg<2> > > >, 0>, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> > ' ../boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp:73: instantiated from 'boost::mpl::apply2<boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> , boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > >, boost::mpl::push_back<boost::mpl::second<boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0> >, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> > ' ../boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp:91: instantiated from 'boost::mpl::aux::fold_impl<3, boost::mpl::v_iter<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0l>, boost::mpl::v_iter<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 3l>, boost::mpl::pair<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > > >' ../boost/boost/mpl/fold.hpp:39: instantiated from 'boost::mpl::fold<boost::mpl::vector<boost::mpl::pair<tag1, mpl_::int_<1> , boost::mpl::pair<tag2, mpl_::int_<2> >, boost::mpl::pair<tag1, mpl_::int_<3> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::pair<boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >, boost::mpl::if_<is_tag1<boost::mpl::first<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::first<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > >, boost::mpl::push_back<boost::mpl::second<mpl_::arg<1> >, boost::mpl::second<mpl_::arg<2> > > > >' test.cpp:42: instantiated from here ../boost/boost/mpl/push_back.hpp:32: error: no class template named 'apply' in 'struct boost::mpl::push_back_impl<boost::mpl::non_sequence_tag>'
AMDG On 03/14/2012 01:25 AM, Peter Nyssen wrote:
<snip> typedef typename mpl::fold< initial_vector, mpl::pair<mpl::vector<>, mpl::vector<> >, mpl::if_< is_tag1<mpl::first<mpl::_2> >, mpl::push_back< mpl::first<mpl::_1>, mpl::second<mpl::_2> >, mpl::push_back< mpl::second<mpl::_1>, mpl::second<mpl::_2> > > >::type sorted_pair;
<snip>
//-------------------------------------
$ g++4 -Wall -I ../boost/ -o test test.cpp test.cpp: In function 'int main()': test.cpp:28: error: using 'typename' outside of template
This should be obvious.
../boost/boost/mpl/pair.hpp:56: error: no type named 'second' in 'struct boost::mpl::v_item<mpl_::int_<1>, boost::mpl::vector<mpl_::na, mpl_::na, <snip>,
The state should be a pair of vectors, but the fold operation produces a single vector. In Christ, Steven Watanabe
participants (2)
-
Peter Nyssen
-
Steven Watanabe