From 60d0602eb915c744e6ca7e7999f8e44796f334ad Mon Sep 17 00:00:00 2001 From: Aleksey Gurtovoy Date: Thu, 20 Feb 2003 12:23:55 +0000 Subject: [PATCH] some ETI-related fixes [SVN r17549] --- .../mpl/aux_/preprocessed/msvc70/apply.hpp | 42 +++++++++++++++++++ .../aux_/preprocessed/msvc70/basic_bind.hpp | 4 +- .../mpl/aux_/preprocessed/msvc70/bind.hpp | 6 +-- .../preprocessed/msvc70/template_arity.hpp | 1 + 4 files changed, 48 insertions(+), 5 deletions(-) diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp index a65c802..b403df4 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp @@ -19,6 +19,13 @@ struct apply0 : F }; +// workaround for the ETI bug +template<> +struct apply0 +{ + typedef int type; +}; + namespace aux { template<> @@ -55,6 +62,13 @@ struct apply1 }; +// workaround for ETI bug +template<> +struct apply1< int,int > +{ + typedef int type; +}; + namespace aux { template<> @@ -92,6 +106,13 @@ struct apply2 }; +// workaround for ETI bug +template<> +struct apply2< int,int,int > +{ + typedef int type; +}; + namespace aux { template<> @@ -130,6 +151,13 @@ struct apply3 }; +// workaround for ETI bug +template<> +struct apply3< int,int,int,int > +{ + typedef int type; +}; + namespace aux { template<> @@ -169,6 +197,13 @@ struct apply4 }; +// workaround for ETI bug +template<> +struct apply4< int,int,int,int,int > +{ + typedef int type; +}; + namespace aux { template<> @@ -210,6 +245,13 @@ struct apply5 }; +// workaround for ETI bug +template<> +struct apply5< int,int,int,int,int,int > +{ + typedef int type; +}; + namespace aux { template<> diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp index 1c075f5..ebc4272 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp @@ -11,7 +11,7 @@ struct resolve_arg_impl { template< typename T, typename U1, typename U2, typename U3 - , typename U4 , typename U5 + , typename U4, typename U5 > struct result_ { @@ -24,7 +24,7 @@ struct resolve_arg_impl { template< typename T, typename U1, typename U2, typename U3 - , typename U4 , typename U5 + , typename U4, typename U5 > struct result_ { diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp index 7ac6119..e7e265b 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp @@ -11,7 +11,7 @@ struct resolve_arg_impl { template< typename T, typename U1, typename U2, typename U3 - , typename U4 , typename U5 + , typename U4, typename U5 > struct result_ { @@ -24,7 +24,7 @@ struct resolve_arg_impl { template< typename T, typename U1, typename U2, typename U3 - , typename U4 , typename U5 + , typename U4, typename U5 > struct result_ { @@ -64,7 +64,7 @@ struct replace_unnamed_arg_impl< arg<-1> > }; }; -template< typename T, typename Arg > +template< typename T, typename Arg > struct replace_unnamed_arg : replace_unnamed_arg_impl::template result_ { diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp index f69e5e1..7fc759b 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp @@ -18,6 +18,7 @@ struct template_arity_impl template< typename F > struct result_ { enum { value = F::arity }; + }; };