From fa847908a7a9b28029c591457ecaff1b35193aa4 Mon Sep 17 00:00:00 2001 From: Aleksey Gurtovoy Date: Tue, 26 Oct 2004 14:51:08 +0000 Subject: [PATCH] fix gcc 2.95 regressions (see http://thread.gmane.org/gmane.comp.lib.boost.devel/112288) [SVN r25875] --- include/boost/mpl/aux_/arity_spec.hpp | 23 ++++++++++++++++++- .../mpl/aux_/preprocessed/bcc/basic_bind.hpp | 6 +++++ .../boost/mpl/aux_/preprocessed/bcc/bind.hpp | 6 +++++ .../aux_/preprocessed/bcc551/basic_bind.hpp | 6 +++++ .../mpl/aux_/preprocessed/bcc551/bind.hpp | 6 +++++ .../mpl/aux_/preprocessed/dmc/basic_bind.hpp | 6 +++++ .../boost/mpl/aux_/preprocessed/dmc/bind.hpp | 6 +++++ .../mpl/aux_/preprocessed/gcc/basic_bind.hpp | 6 +++++ .../boost/mpl/aux_/preprocessed/gcc/bind.hpp | 6 +++++ .../aux_/preprocessed/msvc60/basic_bind.hpp | 6 +++++ .../mpl/aux_/preprocessed/msvc60/bind.hpp | 6 +++++ .../aux_/preprocessed/msvc70/basic_bind.hpp | 6 +++++ .../mpl/aux_/preprocessed/msvc70/bind.hpp | 6 +++++ .../mpl/aux_/preprocessed/mwcw/basic_bind.hpp | 6 +++++ .../boost/mpl/aux_/preprocessed/mwcw/bind.hpp | 6 +++++ .../aux_/preprocessed/no_ctps/basic_bind.hpp | 11 +++++++++ .../mpl/aux_/preprocessed/no_ctps/bind.hpp | 11 +++++++++ .../aux_/preprocessed/no_ttp/basic_bind.hpp | 6 +++++ .../mpl/aux_/preprocessed/no_ttp/bind.hpp | 6 +++++ .../aux_/preprocessed/plain/basic_bind.hpp | 6 +++++ .../mpl/aux_/preprocessed/plain/bind.hpp | 6 +++++ include/boost/mpl/bind.hpp | 8 ++++++- 22 files changed, 159 insertions(+), 2 deletions(-) diff --git a/include/boost/mpl/aux_/arity_spec.hpp b/include/boost/mpl/aux_/arity_spec.hpp index c10275e..43819c0 100644 --- a/include/boost/mpl/aux_/arity_spec.hpp +++ b/include/boost/mpl/aux_/arity_spec.hpp @@ -14,10 +14,15 @@ // $Date$ // $Revision$ +#include +#include #include #include #include -#include +#include +#include +#include +#include #include #if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) @@ -43,4 +48,20 @@ struct arity< \ BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \ /**/ + +#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \ +namespace aux { \ +template< BOOST_MPL_PP_PARAMS(i,typename T) > \ +struct template_arity< name > \ + : int_ \ +{ \ +}; \ +} \ +/**/ +#else +# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/ +#endif + + #endif // BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp index 1c3f88d..d24e224 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp @@ -71,6 +71,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, typename T1 @@ -112,6 +113,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, typename T2 @@ -154,6 +156,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, typename T3 @@ -197,6 +200,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -242,6 +246,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -290,5 +295,6 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) }} diff --git a/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp b/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp index 1d166e2..edafd0c 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp @@ -93,6 +93,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, typename T1 @@ -141,6 +142,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, typename T2 @@ -194,6 +196,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, typename T3 @@ -252,6 +255,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -316,6 +320,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -387,5 +392,6 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) }} diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp index 10f871e..a29daa0 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp @@ -72,6 +72,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, typename T1 @@ -114,6 +115,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, typename T2 @@ -157,6 +159,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, typename T3 @@ -201,6 +204,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -247,6 +251,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -296,5 +301,6 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) }} diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/bind.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/bind.hpp index 7e00536..34b1b5c 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/bind.hpp @@ -94,6 +94,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, typename T1 @@ -143,6 +144,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, typename T2 @@ -197,6 +199,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, typename T3 @@ -256,6 +259,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -321,6 +325,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -393,5 +398,6 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) }} diff --git a/include/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp index aac2e94..1e73429 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp @@ -83,6 +83,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, int dummy_ @@ -133,6 +134,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, int dummy_ @@ -184,6 +186,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, int dummy_ @@ -236,6 +239,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, int dummy_ @@ -291,6 +295,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -349,6 +354,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/dmc/bind.hpp b/include/boost/mpl/aux_/preprocessed/dmc/bind.hpp index a6257cc..94bfe1f 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/bind.hpp @@ -105,6 +105,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, int dummy_ @@ -162,6 +163,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, int dummy_ @@ -224,6 +226,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, int dummy_ @@ -291,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, int dummy_ @@ -365,6 +369,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -446,6 +451,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp index 3e1ef6b..b070232 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp @@ -83,6 +83,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F @@ -133,6 +134,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1 @@ -184,6 +186,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2 @@ -236,6 +239,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3 @@ -290,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -347,6 +352,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp b/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp index 9f12c5b..0e9513a 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp @@ -105,6 +105,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F @@ -162,6 +163,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1 @@ -224,6 +226,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2 @@ -291,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3 @@ -364,6 +368,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -444,6 +449,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp index 7116e3c..4f12a40 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp @@ -124,6 +124,7 @@ is_bind_helper(bind0*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, typename T1 @@ -160,6 +161,7 @@ is_bind_helper(bind1< F,T1 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, typename T2 @@ -197,6 +199,7 @@ is_bind_helper(bind2< F,T1,T2 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, typename T3 @@ -235,6 +238,7 @@ is_bind_helper(bind3< F,T1,T2,T3 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -275,6 +279,7 @@ is_bind_helper(bind4< F,T1,T2,T3,T4 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -318,5 +323,6 @@ is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) }} diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp index 7912f43..53c76e8 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp @@ -153,6 +153,7 @@ is_bind_helper(bind0*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, typename T1 @@ -196,6 +197,7 @@ is_bind_helper(bind1< F,T1 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, typename T2 @@ -244,6 +246,7 @@ is_bind_helper(bind2< F,T1,T2 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, typename T3 @@ -297,6 +300,7 @@ is_bind_helper(bind3< F,T1,T2,T3 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -356,6 +360,7 @@ is_bind_helper(bind4< F,T1,T2,T3,T4 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -422,5 +427,6 @@ is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) }} diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp index 7116e3c..4f12a40 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp @@ -124,6 +124,7 @@ is_bind_helper(bind0*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, typename T1 @@ -160,6 +161,7 @@ is_bind_helper(bind1< F,T1 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, typename T2 @@ -197,6 +199,7 @@ is_bind_helper(bind2< F,T1,T2 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, typename T3 @@ -235,6 +238,7 @@ is_bind_helper(bind3< F,T1,T2,T3 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -275,6 +279,7 @@ is_bind_helper(bind4< F,T1,T2,T3,T4 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -318,5 +323,6 @@ is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) }} diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp index 7912f43..53c76e8 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp @@ -153,6 +153,7 @@ is_bind_helper(bind0*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F, typename T1 @@ -196,6 +197,7 @@ is_bind_helper(bind1< F,T1 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1, typename T2 @@ -244,6 +246,7 @@ is_bind_helper(bind2< F,T1,T2 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2, typename T3 @@ -297,6 +300,7 @@ is_bind_helper(bind3< F,T1,T2,T3 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -356,6 +360,7 @@ is_bind_helper(bind4< F,T1,T2,T3,T4 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -422,5 +427,6 @@ is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) }} diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp index 3e1ef6b..b070232 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp @@ -83,6 +83,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F @@ -133,6 +134,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1 @@ -184,6 +186,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2 @@ -236,6 +239,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3 @@ -290,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -347,6 +352,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp index 9f12c5b..0e9513a 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp @@ -105,6 +105,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F @@ -162,6 +163,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1 @@ -224,6 +226,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2 @@ -291,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3 @@ -364,6 +368,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -444,6 +449,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp index 16f365f..254e5b8 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp @@ -130,6 +130,7 @@ is_bind_helper(bind0*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) namespace aux { @@ -183,6 +184,7 @@ is_bind_helper(bind1< F,T1 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) namespace aux { @@ -237,6 +239,7 @@ is_bind_helper(bind2< F,T1,T2 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) namespace aux { @@ -292,6 +295,7 @@ is_bind_helper(bind3< F,T1,T2,T3 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) namespace aux { @@ -349,6 +353,7 @@ is_bind_helper(bind4< F,T1,T2,T3,T4 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) namespace aux { @@ -409,6 +414,7 @@ is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) namespace aux { @@ -471,5 +477,10 @@ BOOST_MPL_AUX_ARITY_SPEC( 6 , bind ) + +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC( + 6 + , bind + ) }} diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp index 7c7ced9..12062b4 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp @@ -159,6 +159,7 @@ is_bind_helper(bind0*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) namespace aux { @@ -219,6 +220,7 @@ is_bind_helper(bind1< F,T1 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) namespace aux { @@ -284,6 +286,7 @@ is_bind_helper(bind2< F,T1,T2 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) namespace aux { @@ -354,6 +357,7 @@ is_bind_helper(bind3< F,T1,T2,T3 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) namespace aux { @@ -430,6 +434,7 @@ is_bind_helper(bind4< F,T1,T2,T3,T4 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) namespace aux { @@ -513,6 +518,7 @@ is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) namespace aux { @@ -575,5 +581,10 @@ BOOST_MPL_AUX_ARITY_SPEC( 6 , bind ) + +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC( + 6 + , bind + ) }} diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp index b1d032a..095b84d 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp @@ -83,6 +83,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F @@ -133,6 +134,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1 @@ -184,6 +186,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2 @@ -236,6 +239,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3 @@ -290,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -347,6 +352,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp index b9776d2..2891440 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp @@ -105,6 +105,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F @@ -162,6 +163,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1 @@ -224,6 +226,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2 @@ -291,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3 @@ -364,6 +368,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -444,6 +449,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp index 3e1ef6b..b070232 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp @@ -83,6 +83,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F @@ -133,6 +134,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1 @@ -184,6 +186,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2 @@ -236,6 +239,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3 @@ -290,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -347,6 +352,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/aux_/preprocessed/plain/bind.hpp b/include/boost/mpl/aux_/preprocessed/plain/bind.hpp index 9f12c5b..0e9513a 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/bind.hpp @@ -105,6 +105,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(1, bind0) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) template< typename F @@ -162,6 +163,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(2, bind1) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) template< typename F, typename T1 @@ -224,6 +226,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(3, bind2) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) template< typename F, typename T1, typename T2 @@ -291,6 +294,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(4, bind3) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) template< typename F, typename T1, typename T2, typename T3 @@ -364,6 +368,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(5, bind4) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) template< typename F, typename T1, typename T2, typename T3, typename T4 @@ -444,6 +449,7 @@ struct resolve_bind_arg< } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(6, bind5) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) /// primary template (not a specialization!) diff --git a/include/boost/mpl/bind.hpp b/include/boost/mpl/bind.hpp index fa40645..6e396b6 100644 --- a/include/boost/mpl/bind.hpp +++ b/include/boost/mpl/bind.hpp @@ -338,6 +338,12 @@ BOOST_MPL_AUX_ARITY_SPEC( , bind ) +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC( + BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) + , bind + ) + + #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION # undef AUX778076_BIND_NESTED_DEFAULT_PARAMS @@ -471,7 +477,7 @@ is_bind_helper(BOOST_PP_CAT(bind,i_)*); } // namespace aux BOOST_MPL_AUX_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_)) - +BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_)) # if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) # if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)