From f96a898c517dc756ff249db24eeb810cc6d7015b Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Wed, 21 Aug 2002 01:46:03 +0000 Subject: [PATCH] VC6 fixups [SVN r15018] --- include/boost/python/detail/defaults_def.hpp | 16 +++--- include/boost/python/signature.hpp | 55 +++++++++----------- 2 files changed, 34 insertions(+), 37 deletions(-) diff --git a/include/boost/python/detail/defaults_def.hpp b/include/boost/python/detail/defaults_def.hpp index 03495ee9..16cdd55e 100644 --- a/include/boost/python/detail/defaults_def.hpp +++ b/include/boost/python/detail/defaults_def.hpp @@ -131,13 +131,15 @@ namespace detail { SigT sig, char const* doc) { - typedef typename mpl::select_type - < - boost::is_same::type>::value, - typename StubsT::v_type, - typename StubsT::nv_type - > - ::type stubs_type; + typedef typename mpl::at<0, SigT>::type nth_type; + typedef typename StubsT::v_type v_type; + typedef typename StubsT::nv_type nv_type; + + typedef typename mpl::select_type< + boost::is_same::value + , v_type + , nv_type + >::type stubs_type; BOOST_STATIC_ASSERT( (stubs_type::max_args + 1) <= boost::mpl::size::value); diff --git a/include/boost/python/signature.hpp b/include/boost/python/signature.hpp index 9f43ae1f..e5134b20 100644 --- a/include/boost/python/signature.hpp +++ b/include/boost/python/signature.hpp @@ -38,7 +38,7 @@ namespace boost { namespace python { // signature void C::foo(int, int) const // /////////////////////////////////////////////////////////////////////////////// -template +template struct signature {}; namespace detail { @@ -47,42 +47,42 @@ namespace detail { // // The following macros generate expansions for: // -// template +// template // inline boost::mpl::type_list // get_signature(signature) // { // return boost::mpl::type_list(); // } // -// template +// template // inline boost::mpl::type_list // get_signature(RT(*)(T0...TN)) // { // return boost::mpl::type_list(); // } // -// template +// template // inline boost::mpl::type_list // get_signature(signature) // { // return boost::mpl::type_list(); // } // -// template +// template // inline boost::mpl::type_list // get_signature(signature) // { // return boost::mpl::type_list(); // } // -// template +// template // inline boost::mpl::type_list // get_signature(RT(ClassT::*)(T0...TN))) // { // return boost::mpl::type_list(); // } // -// template +// template // inline boost::mpl::type_list // get_signature(RT(ClassT::*)(T0...TN) const)) // { @@ -93,7 +93,7 @@ namespace detail { // and arguments of the input signature and stuffs them in an mpl::type_list. // /////////////////////////////////////////////////////////////////////////////// -#define BPL_IMPL_TEMPLATE_GEN(INDEX, DATA) typename BOOST_PP_CAT(T, INDEX) +#define BPL_IMPL_TEMPLATE_GEN(INDEX, DATA) class BOOST_PP_CAT(T, INDEX) /////////////////////////////////////////////////////////////////////////////// #define BOOST_PP_ITERATION_PARAMS_1 \ @@ -113,10 +113,10 @@ namespace detail { #else // defined(BOOST_PP_IS_ITERATING) // PP vertical iteration code -/////////////////////////////////////////////////////////////////////////////// +# if !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)) template < - typename RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) + class RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) BOOST_PP_ENUM ( BOOST_PP_ITERATION(), @@ -139,12 +139,9 @@ get_signature >(); } -/////////////////////////////////////// -#if !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)) - template < - typename RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) + class RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) BOOST_PP_ENUM ( BOOST_PP_ITERATION(), @@ -167,12 +164,12 @@ get_signature >(); } -#endif // !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)) +# endif // !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)) /////////////////////////////////////// template < - typename RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) + class RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) BOOST_PP_ENUM ( BOOST_PP_ITERATION(), @@ -196,11 +193,11 @@ get_signature } /////////////////////////////////////////////////////////////////////////////// -#if BOOST_PP_ITERATION() <= (BOOST_PYTHON_MAX_ARITY - 2) +# if BOOST_PP_ITERATION() <= (BOOST_PYTHON_MAX_ARITY - 2) template < - typename RT, typename ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) + class RT, class ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) BOOST_PP_ENUM ( BOOST_PP_ITERATION(), @@ -223,19 +220,17 @@ get_signature (); } -/////////////////////////////////////// -template -< - typename RT, typename ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) - BOOST_PP_ENUM - ( +# if !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)) +template < + class RT + , class ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) + BOOST_PP_ENUM( BOOST_PP_ITERATION(), BPL_IMPL_TEMPLATE_GEN, BOOST_PP_EMPTY ) > -inline boost::mpl::type_list -< +inline boost::mpl::type_list< RT, ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), T) > @@ -249,11 +244,11 @@ get_signature BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), T) >(); } +# endif -/////////////////////////////////////// template < - typename RT, typename ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) + class RT, class ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) BOOST_PP_ENUM ( BOOST_PP_ITERATION(), @@ -279,7 +274,7 @@ get_signature /////////////////////////////////////// template < - typename RT, typename ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) + class RT, class ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION()) BOOST_PP_ENUM ( BOOST_PP_ITERATION(), @@ -304,6 +299,6 @@ get_signature >(); } -#endif // BOOST_PP_ITERATION() < (BOOST_PYTHON_MAX_ARITY - 2) +# endif // BOOST_PP_ITERATION() < (BOOST_PYTHON_MAX_ARITY - 2) #endif // !defined(BOOST_PP_IS_ITERATING)