Opened 11 years ago

#5672 new Bugs

Intel compiler failure with BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF

Reported by: anonymous Owned by: Joel Falcou
Milestone: To Be Determined Component: mpl
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

Attempting to use the Intel 11.1 or 12.0 compiler to test the existence of a nested template using the macro BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF results in a compiler error. When running the has_xxx.cpp MPL test against Intel 12.0, the error message is:

"has_xxx.cpp(20): error: more than one instance of overloaded function "has_xxx_template<T, fallback_>::has_xxx_template_introspect<U>::has_xxx_template_test [with T=a5, fallback_=boost::mpl::bool_<false>, U=a5]" matches the argument list:

function template "boost::mpl::aux::yes_tag has_xxx_template<T, fallback_>::has_xxx_template_introspect<U>::has_xxx_template_test(const volatile boost::mpl::aux::type_wrapper<V> *, has_xxx_template<a5, boost::mpl::bool_<false>>::has_xxx_template_introspect<a5>::has_xxx_template_substitute0<V::xxx> *) [with T=a5, fallback_=boost::mpl::bool_<false>, U=a5]" function template "boost::mpl::aux::yes_tag has_xxx_template<T, fallback_>::has_xxx_template_introspect<U>::has_xxx_template_test(const volatile boost::mpl::aux::type_wrapper<V> *, has_xxx_template<a5, boost::mpl::bool_<false>>::has_xxx_template_introspect<a5>::has_xxx_template_substitute1<V::xxx> *) [with T=a5, fallback_=boost::mpl::bool_<false>, U=a5]" function template "boost::mpl::aux::yes_tag has_xxx_template<T, fallback_>::has_xxx_template_introspect<U>::has_xxx_template_test(const volatile boost::mpl::aux::type_wrapper<V> *, has_xxx_template<a5, boost::mpl::bool_<false>>::has_xxx_template_introspect<a5>::has_xxx_template_substitute2<V::xxx> *) [with T=a5, fallback_=boost::mpl::bool_<false>, U=a5]" function template "boost::mpl::aux::yes_tag has_xxx_template<T, fallback_>::has_xxx_template_introspect<U>::has_xxx_template_test(const volatile boost::mpl::aux::type_wrapper<V> *, has_xxx_template<a5, boost::mpl::bool_<false>>::has_xxx_template_introspect<a5>::has_xxx_template_substitute3<V::xxx> *) [with T=a5, fallback_=boost::mpl::bool_<false>, U=a5]" function template "boost::mpl::aux::yes_tag has_xxx_template<T, fallback_>::has_xxx_template_introspect<U>::has_xxx_template_test(const volatile boost::mpl::aux::type_wrapper<V> *, has_xxx_template<a5, boost::mpl::bool_<false>>::has_xxx_template_introspect<a5>::has_xxx_template_substitute4<V::xxx> *) [with T=a5, fallback_=boost::mpl::bool_<false>, U=a5]" argument types are: (int)

BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(has_xxx_template, xxx, false)

detected during:

instantiation of class "has_xxx_template<T, fallback_>::has_xxx_template_introspect<U> [with T=a5, fallback_=boost::mpl::bool_<false>, U=a5]" at line 20 instantiation of class "has_xxx_template<T, fallback_> [with T=a5, fallback_=boost::mpl::bool_<false>]" at line 148 of "../../../boost/mpl/assert.hpp" instantiation of class "boost::mpl::assert_arg_pred_not<P> [with P=has_xxx_template<a5, boost::mpl::bool_<false>>]" at line 82"

The Intel 11.1 compiler has the same error.

John Maddock has reported this to Intel as Intel support ID #635997.

Change History (0)

Note: See TracTickets for help on using tickets.