1
0
forked from boostorg/mpl

MPL: fixed #4061: gcc-4.5 compilation problems related to arity_helper, applied attached patch to the main aux_/template_arity.hpp and regenerated the corresponding file preprocessed/gcc/template_arity.hpp. No other preprocessed files are affected.

This patch seemed to be fine as all it does is to qualify an internal name in order to avoid it being looked up through ADL. This appears to be reasonably safe as this name is internal and not supposed to be found using ADL in the first place.


[SVN r61467]
This commit is contained in:
Hartmut Kaiser
2010-04-21 17:19:06 +00:00
parent 4678423fee
commit cc82b7a924
2 changed files with 3 additions and 7 deletions

View File

@@ -6,11 +6,10 @@
// http://www.boost.org/LICENSE_1_0.txt)
//
// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
// *Preprocessed* version of the main "template_arity.hpp" header
// -- DO NOT modify by hand!
namespace boost { namespace mpl { namespace aux {
template< int N > struct arity_tag
{
typedef char (&type)[N + 1];
@@ -23,7 +22,6 @@ struct max_arity
{
BOOST_STATIC_CONSTANT(int, value =
( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) )
);
};
@@ -83,7 +81,7 @@ template< typename F, int N >
struct template_arity_impl
{
BOOST_STATIC_CONSTANT(int, value =
sizeof(arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1
sizeof(::boost::mpl::aux::arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1
);
};
@@ -92,9 +90,7 @@ struct template_arity
{
BOOST_STATIC_CONSTANT(int, value = (
max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value
));
typedef mpl::int_<value> type;
};

View File

@@ -98,7 +98,7 @@ template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) >
struct template_arity_impl
{
BOOST_STATIC_CONSTANT(int, value =
sizeof(arity_helper(type_wrapper<F>(),arity_tag<N>())) - 1
sizeof(::boost::mpl::aux::arity_helper(type_wrapper<F>(),arity_tag<N>())) - 1
);
};