mirror of
https://github.com/boostorg/python.git
synced 2026-01-21 17:12:22 +00:00
VC6 Workaronds (cleanup)
[SVN r15027]
This commit is contained in:
@@ -48,6 +48,9 @@ namespace detail {
|
||||
// 5. char const* name: doc string
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
template <int N>
|
||||
struct define_stub_function {};
|
||||
|
||||
#define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
(3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/defaults_def.hpp>))
|
||||
|
||||
@@ -81,7 +84,7 @@ namespace detail {
|
||||
def(char const* name, StubsT stubs, HolderT& holder, char const* doc)
|
||||
{
|
||||
// define the NTH stub function of stubs
|
||||
define_stub_function(name, stubs, holder, boost::mpl::int_t<N>(), doc);
|
||||
define_stub_function<N>::define(name, stubs, holder, doc);
|
||||
// call the next define_with_defaults_helper
|
||||
define_with_defaults_helper<N-1>::def(name, stubs, holder, doc);
|
||||
}
|
||||
@@ -96,7 +99,7 @@ namespace detail {
|
||||
def(char const* name, StubsT stubs, HolderT& holder, char const* doc)
|
||||
{
|
||||
// define the Oth stub function of stubs
|
||||
define_stub_function(name, stubs, holder, boost::mpl::int_t<0>(), doc);
|
||||
define_stub_function<0>::define(name, stubs, holder, doc);
|
||||
// return
|
||||
}
|
||||
};
|
||||
@@ -134,7 +137,7 @@ namespace detail {
|
||||
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<void, nth_type>::value
|
||||
, v_type
|
||||
@@ -159,14 +162,16 @@ namespace detail {
|
||||
#else // defined(BOOST_PP_IS_ITERATING)
|
||||
// PP vertical iteration code
|
||||
|
||||
template <>
|
||||
struct define_stub_function<BOOST_PP_ITERATION()> {
|
||||
|
||||
template <typename StubsT, typename HolderT>
|
||||
inline void
|
||||
define_stub_function
|
||||
static void
|
||||
define
|
||||
(
|
||||
char const* name,
|
||||
StubsT,
|
||||
HolderT& holder,
|
||||
boost::mpl::int_t<BOOST_PP_ITERATION()>,
|
||||
char const* doc
|
||||
)
|
||||
{
|
||||
@@ -176,5 +181,6 @@ namespace detail {
|
||||
default_call_policies(),
|
||||
doc);
|
||||
}
|
||||
};
|
||||
|
||||
#endif // !defined(BOOST_PP_IS_ITERATING)
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace boost { namespace python {
|
||||
// signature<void(C::*)(int) const> void C::foo(int, int) const
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
template <class T>
|
||||
template <typename T>
|
||||
struct signature {};
|
||||
|
||||
namespace detail {
|
||||
@@ -47,42 +47,42 @@ namespace detail {
|
||||
//
|
||||
// The following macros generate expansions for:
|
||||
//
|
||||
// template <class RT, class T0... class TN>
|
||||
// template <typename RT, typename T0... typename TN>
|
||||
// inline boost::mpl::type_list<RT, T0...TN>
|
||||
// get_signature(signature<RT(*)(T0...TN)>)
|
||||
// {
|
||||
// return boost::mpl::type_list<RT, T0...TN>();
|
||||
// }
|
||||
//
|
||||
// template <class RT, class T0... class TN>
|
||||
// template <typename RT, typename T0... typename TN>
|
||||
// inline boost::mpl::type_list<RT, T0...TN>
|
||||
// get_signature(RT(*)(T0...TN))
|
||||
// {
|
||||
// return boost::mpl::type_list<RT, T0...TN>();
|
||||
// }
|
||||
//
|
||||
// template <class RT, class ClassT, class T0... class TN>
|
||||
// template <typename RT, typename ClassT, typename T0... typename TN>
|
||||
// inline boost::mpl::type_list<RT, ClassT, T0...TN>
|
||||
// get_signature(signature<RT(ClassT::*)(T0...TN))>)
|
||||
// {
|
||||
// return boost::mpl::type_list<RT, ClassT, T0...TN>();
|
||||
// }
|
||||
//
|
||||
// template <class RT, class ClassT, class T0... class TN>
|
||||
// template <typename RT, typename ClassT, typename T0... typename TN>
|
||||
// inline boost::mpl::type_list<RT, ClassT, T0...TN>
|
||||
// get_signature(signature<RT(ClassT::*)(T0...TN) const)>)
|
||||
// {
|
||||
// return boost::mpl::type_list<RT, ClassT const, T0...TN>();
|
||||
// }
|
||||
//
|
||||
// template <class RT, class ClassT, class T0... class TN>
|
||||
// template <typename RT, typename ClassT, typename T0... typename TN>
|
||||
// inline boost::mpl::type_list<RT, ClassT, T0...TN>
|
||||
// get_signature(RT(ClassT::*)(T0...TN)))
|
||||
// {
|
||||
// return boost::mpl::type_list<RT, ClassT, T0...TN>();
|
||||
// }
|
||||
//
|
||||
// template <class RT, class ClassT, class T0... class TN>
|
||||
// template <typename RT, typename ClassT, typename T0... typename TN>
|
||||
// inline boost::mpl::type_list<RT, ClassT, T0...TN>
|
||||
// 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) class BOOST_PP_CAT(T, INDEX)
|
||||
#define BPL_IMPL_TEMPLATE_GEN(INDEX, DATA) typename BOOST_PP_CAT(T, INDEX)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
@@ -113,10 +113,12 @@ namespace detail {
|
||||
#else // defined(BOOST_PP_IS_ITERATING)
|
||||
// PP vertical iteration code
|
||||
|
||||
# if !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300))
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#if !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1200))
|
||||
|
||||
template
|
||||
<
|
||||
class RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
typename RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
BOOST_PP_ENUM
|
||||
(
|
||||
BOOST_PP_ITERATION(),
|
||||
@@ -139,9 +141,14 @@ get_signature
|
||||
>();
|
||||
}
|
||||
|
||||
#endif // !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1200))
|
||||
|
||||
///////////////////////////////////////
|
||||
#if !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300))
|
||||
|
||||
template
|
||||
<
|
||||
class RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
typename RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
BOOST_PP_ENUM
|
||||
(
|
||||
BOOST_PP_ITERATION(),
|
||||
@@ -164,12 +171,12 @@ get_signature
|
||||
>();
|
||||
}
|
||||
|
||||
# endif // !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300))
|
||||
#endif // !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300))
|
||||
|
||||
///////////////////////////////////////
|
||||
template
|
||||
<
|
||||
class RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
typename RT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
BOOST_PP_ENUM
|
||||
(
|
||||
BOOST_PP_ITERATION(),
|
||||
@@ -193,11 +200,13 @@ get_signature
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
# if BOOST_PP_ITERATION() <= (BOOST_PYTHON_MAX_ARITY - 2)
|
||||
#if BOOST_PP_ITERATION() <= (BOOST_PYTHON_MAX_ARITY - 2)
|
||||
|
||||
#if !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1200))
|
||||
|
||||
template
|
||||
<
|
||||
class RT, class ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
typename RT, typename ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
BOOST_PP_ENUM
|
||||
(
|
||||
BOOST_PP_ITERATION(),
|
||||
@@ -220,17 +229,19 @@ get_signature
|
||||
();
|
||||
}
|
||||
|
||||
# if !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1300))
|
||||
template <
|
||||
class RT
|
||||
, class ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
BOOST_PP_ENUM(
|
||||
///////////////////////////////////////
|
||||
template
|
||||
<
|
||||
typename RT, typename 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)
|
||||
>
|
||||
@@ -244,11 +255,13 @@ get_signature
|
||||
BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), T)
|
||||
>();
|
||||
}
|
||||
# endif
|
||||
|
||||
#endif // !(defined(BOOST_MSVC) && (BOOST_MSVC <= 1200))
|
||||
|
||||
///////////////////////////////////////
|
||||
template
|
||||
<
|
||||
class RT, class ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
typename RT, typename ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
BOOST_PP_ENUM
|
||||
(
|
||||
BOOST_PP_ITERATION(),
|
||||
@@ -274,7 +287,7 @@ get_signature
|
||||
///////////////////////////////////////
|
||||
template
|
||||
<
|
||||
class RT, class ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
typename RT, typename ClassT BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||
BOOST_PP_ENUM
|
||||
(
|
||||
BOOST_PP_ITERATION(),
|
||||
@@ -299,6 +312,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)
|
||||
|
||||
Reference in New Issue
Block a user