id summary reporter owner description type status milestone component version severity resolution keywords cc 588 mpl::remove compile error with gcc 4.1.0 eelis Aleksey Gurtovoy "{{{ The following four lines fail to compile using gcc 4.1.0 with boost 1.33.1: #include #include template struct X { struct type {}; }; typedef boost::mpl::remove, X::type>::type T; Error: boost/mpl/aux_/preprocessed/gcc/template_arity.hpp: In instantiation of ‘const int boost::mpl::aux::template_arity_impl::type, 1>::value’: boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:93: instantiated from ‘const int boost::mpl::aux::template_arity::type>::value’ boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:98: instantiated from ‘boost::mpl::aux::template_arity::type>’ boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp:123: instantiated from ‘boost::mpl::lambda::type>, mpl_::void_, mpl_::int_<1> >’ boost/mpl/remove_if.hpp:57: instantiated from ‘boost::mpl::aux::remove_if_impl, boost::mpl::same_as::type>, boost::mpl::back_inserter > >’ boost/mpl/remove.hpp:33: instantiated from ‘boost::mpl::aux::remove_impl, X::type, boost::mpl::back_inserter > >’ boost/mpl/remove.hpp:48: instantiated from ‘boost::mpl::remove, X::type, mpl_::na>’ t.cpp:4: instantiated from here boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:85: error: call of overloaded ‘arity_helper(boost::mpl::aux::type_wrapper::type>, boost::mpl::aux::arity_tag<1>)’ is ambiguous boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:30: note: candidates are: char (& boost::mpl::aux::arity_helper(...))[1] boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:37: note: char (& boost::mpl::aux::arity_helper(boost::mpl::aux::type_wrapper >, boost::mpl::aux::arity_tag<1>))[2] [with F = X< >::type, T1 = int] boost/mpl/aux_/preprocessed/gcc/template_arity.hpp:37: note: char (& boost::mpl::aux::arity_helper(boost::mpl::aux::type_wrapper >, boost::mpl::aux::arity_tag<1>))[2] [with F = X< >::type, T1 = int] The code compiles fine with gcc 4.0.2. }}}" Bugs closed mpl None Problem fixed