Index: signature.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/python/signature.hpp,v retrieving revision 1.22 diff -u -r1.22 signature.hpp --- signature.hpp 26 Jul 2004 00:32:05 -0000 1.22 +++ signature.hpp 11 Oct 2006 23:12:57 -0000 @@ -151,6 +151,30 @@ } template < + class RT, class ClassT BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class T)> +inline BOOST_PYTHON_LIST_INC(BOOST_PP_INC(N))< + RT, ClassT& BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, T)> +get_signature(__cdecl RT(ClassT::*)(BOOST_PP_ENUM_PARAMS_Z(1, N, T)) Q) +{ + return BOOST_PYTHON_LIST_INC(BOOST_PP_INC(N))< + RT, ClassT& BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, T) + >(); +} + +template < + class RT, class ClassT BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class T)> +inline BOOST_PYTHON_LIST_INC(BOOST_PP_INC(N))< + RT, ClassT& BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, T)> +get_signature(RT(__stdcall ClassT::*)(BOOST_PP_ENUM_PARAMS_Z(1, N, T)) Q) +{ + return BOOST_PYTHON_LIST_INC(BOOST_PP_INC(N))< + RT, ClassT& BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, T) + >(); +} + + + +template < class Target , class RT , class ClassT @@ -173,6 +197,53 @@ >(); } +template < + class Target + , class RT + , class ClassT + BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class T) +> +inline BOOST_PYTHON_LIST_INC(BOOST_PP_INC(N))< + RT + , typename most_derived::type& + BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, T) +> +get_signature( + RT(__cdecl ClassT::*)(BOOST_PP_ENUM_PARAMS_Z(1, N, T)) Q + , Target* +) +{ + return BOOST_PYTHON_LIST_INC(BOOST_PP_INC(N))< + RT + , BOOST_DEDUCED_TYPENAME most_derived::type& + BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, T) + >(); +} + +template < + class Target + , class RT + , class ClassT + BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class T) +> +inline BOOST_PYTHON_LIST_INC(BOOST_PP_INC(N))< + RT + , typename most_derived::type& + BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, T) +> +get_signature( + RT(__stdcall ClassT::*)(BOOST_PP_ENUM_PARAMS_Z(1, N, T)) Q + , Target* +) +{ + return BOOST_PYTHON_LIST_INC(BOOST_PP_INC(N))< + RT + , BOOST_DEDUCED_TYPENAME most_derived::type& + BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, T) + >(); +} + + # undef Q # undef N