This file demonstrates the new long-typename wrapping feature of gSTLFilt.pl, useful for applications such as template metaprogramming. The source program: // // metatest.cpp: This program produces a nice set of // errors to flex the muscles of STLFilt's // template metaprogramming-specific features. // // Note: You need a very recent version of Boost installed. #include #include #include namespace mpl = boost::mpl; mpl::reverse_fold< mpl::range_c , void , mpl::plus<> >::type x; First, an unfiltered run using the MinGW gcc 3.4.5 compiler: e:/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp: In instantiation of `boost::m pl::plus_tag': e:/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp:114: instantiated from `boos t::mpl::plus, mpl_::na, mpl_::na, mpl_::na >' e:/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp:123: instantiated from `boos t::mpl::plus::apply, mpl_::na, mpl_::na, mpl_::na>' e:/boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49: instantiated from `boost::mpl::apply_wrap2, void, mpl_::integral_c >' e:/boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp:73: instantiated from `boos t::mpl::apply2, void, mpl_::integral_c >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:81: instantiate d from `boost::mpl::aux::reverse_fold_impl<2l, boost::mpl::r_iter >, boost::mpl::r_iter >, void, boost::mpl::plus, mpl_::arg<1 > >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:181: instantiat ed from `boost::mpl::aux::reverse_fold_impl<6l, boost::mpl::r_iter >, boost::mpl::r_iter >, void , boost::mpl::plus, mpl_::arg< 1> >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:181: instantiat ed from `boost::mpl::aux::reverse_fold_impl<10l, boost::mpl::r_iter >, boost::mpl::r_iter >, voi d, boost::mpl::plus, mpl_::arg <1> >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:181: instantiat ed from `boost::mpl::aux::reverse_fold_impl<14l, boost::mpl::r_iter >, boost::mpl::r_iter >, voi d, boost::mpl::plus, mpl_::arg <1> >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:181: instantiat ed from `boost::mpl::aux::reverse_fold_impl<18l, boost::mpl::r_iter >, boost::mpl::r_iter >, voi d, boost::mpl::plus, mpl_::arg <1> >' And a filtered run using the gcc-specific Proxy c++ with /break:D (the default): e:/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp: In instantiation of `boost::mpl::plus_tag': metatest.cpp:18: instantiated from here e:/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp:114: instantiated from `boost::mpl::plus >' e:/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp:123: instantiated from `boost::mpl::plus::apply >' e:/boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:49: instantiated from `boost::mpl::apply_wrap2< boost::mpl::plus, void, mpl_::integral_c >' e:/boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp:73: instantiated from `boost::mpl::apply2< boost::mpl::plus, void, mpl_::integral_c >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:81: instantiated from `boost::mpl::aux::reverse_fold_impl< 2l, boost::mpl::r_iter > , boost::mpl::r_iter >, void , boost::mpl::plus, mpl_::arg<1> >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:181: instantiated from `boost::mpl::aux::reverse_fold_impl< 6l, boost::mpl::r_iter > , boost::mpl::r_iter >, void , boost::mpl::plus, mpl_::arg<1> >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:181: instantiated from `boost::mpl::aux::reverse_fold_impl< 10l, boost::mpl::r_iter > , boost::mpl::r_iter >, void , boost::mpl::plus, mpl_::arg<1> >' e:/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp:181: instantiated from `boost::mpl::aux::reverse_fold_impl< 14l, boost::mpl::r_iter > , boost::mpl::r_iter >, void , boost::mpl::plus, mpl_::arg<1> >' [plus lots more of the same...]