mirror of
https://github.com/boostorg/python.git
synced 2026-01-27 07:02:15 +00:00
updated to new iteration interface
[SVN r14388]
This commit is contained in:
@@ -46,10 +46,10 @@ namespace boost { namespace mpl {
|
||||
template <class T> struct size;
|
||||
template <long N, class Seq> struct at;
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/args.hpp>, 1)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/args.hpp>, 1))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 4, (0, BOOST_PYTHON_MAX_ARITY - 1, <boost/python/args.hpp>, 2)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (4, (0, BOOST_PYTHON_MAX_ARITY - 1, <boost/python/args.hpp>, 2))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace boost { namespace python {
|
||||
# define BOOST_PYTHON_FAST_ARG_TO_PYTHON_GET(n, _) \
|
||||
, converter::arg_to_python<A##n>(a##n).get()
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/call.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/call.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
# undef BOOST_PYTHON_FAST_ARG_TO_PYTHON_GET
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace boost { namespace python {
|
||||
# define BOOST_PYTHON_FAST_ARG_TO_PYTHON_GET(n, _) \
|
||||
, converter::arg_to_python<A##n>(a##n).get()
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/call_method.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/call_method.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
# undef BOOST_PYTHON_FAST_ARG_TO_PYTHON_GET
|
||||
|
||||
@@ -41,12 +41,12 @@ template <class F> struct arg_tuple_size;
|
||||
|
||||
// Specializations for function pointers
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/arg_tuple_size.hpp>, BOOST_PYTHON_FUNCTION_POINTER)
|
||||
(4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/arg_tuple_size.hpp>, BOOST_PYTHON_FUNCTION_POINTER))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
// Specializations for member function pointers
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_CV_COUNT - 1, <boost/python/detail/arg_tuple_size.hpp>, BOOST_PYTHON_POINTER_TO_MEMBER)
|
||||
(4, (0, BOOST_PYTHON_CV_COUNT - 1, <boost/python/detail/arg_tuple_size.hpp>, BOOST_PYTHON_POINTER_TO_MEMBER))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
||||
@@ -94,7 +94,7 @@ char_array<N> arg_tuple_size_helper(
|
||||
// Outer iteration over cv-qualifications
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 \
|
||||
3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/arg_tuple_size.hpp>)
|
||||
(3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/arg_tuple_size.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 2 && BOOST_PP_RELATIVE_FLAGS(1) == BOOST_PYTHON_POINTER_TO_MEMBER
|
||||
|
||||
@@ -39,12 +39,12 @@ struct caller
|
||||
|
||||
// function pointers
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/caller.hpp>, BOOST_PYTHON_FUNCTION_POINTER)
|
||||
(4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/caller.hpp>, BOOST_PYTHON_FUNCTION_POINTER))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
// pointers-to-members
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, 3, <boost/python/detail/caller.hpp>, BOOST_PYTHON_POINTER_TO_MEMBER)
|
||||
(4, (0, 3, <boost/python/detail/caller.hpp>, BOOST_PYTHON_POINTER_TO_MEMBER))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
};
|
||||
@@ -78,7 +78,7 @@ PyObject* operator()(
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_POINTER_TO_MEMBER
|
||||
// outer over cv-qualifiers
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/caller.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 (3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/caller.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 2
|
||||
|
||||
@@ -61,7 +61,7 @@ struct member_function_cast_impl
|
||||
# endif
|
||||
|
||||
// Member functions
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 3, (0, 3, <boost/python/detail/member_function_cast.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (3, (0, 3, <boost/python/detail/member_function_cast.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
};
|
||||
|
||||
@@ -86,7 +86,7 @@ struct member_function_cast
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 1
|
||||
// outer over cv-qualifiers
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/member_function_cast.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 (3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/member_function_cast.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 2
|
||||
|
||||
@@ -31,11 +31,11 @@ namespace boost { namespace python { namespace detail {
|
||||
// to get this to work portably.
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/result.hpp>, BOOST_PYTHON_FUNCTION_POINTER)
|
||||
(4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/result.hpp>, BOOST_PYTHON_FUNCTION_POINTER))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_CV_COUNT - 1, <boost/python/detail/result.hpp>, BOOST_PYTHON_POINTER_TO_MEMBER)
|
||||
(4, (0, BOOST_PYTHON_CV_COUNT - 1, <boost/python/detail/result.hpp>, BOOST_PYTHON_POINTER_TO_MEMBER))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
template <class R, class T>
|
||||
@@ -101,7 +101,7 @@ boost::type<R>* result(R (*pf)(BOOST_PYTHON_UNARY_ENUM(N, A)), int = 0)
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_POINTER_TO_MEMBER
|
||||
// Outer over cv-qualifiers
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/result.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 (3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/result.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 2
|
||||
|
||||
@@ -36,15 +36,15 @@ template <class R>
|
||||
struct returning
|
||||
{
|
||||
// Specializations for function pointers
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/returning.hpp>, \
|
||||
BOOST_PYTHON_FUNCTION_POINTER | BOOST_PYTHON_RETURNING_NON_VOID)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
(4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/returning.hpp>, \
|
||||
BOOST_PYTHON_FUNCTION_POINTER | BOOST_PYTHON_RETURNING_NON_VOID))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
// Specializations for member function pointers
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, 3, <boost/python/detail/returning.hpp>, \
|
||||
BOOST_PYTHON_POINTER_TO_MEMBER | BOOST_PYTHON_RETURNING_NON_VOID)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
(4, (0, 3, <boost/python/detail/returning.hpp>, \
|
||||
BOOST_PYTHON_POINTER_TO_MEMBER | BOOST_PYTHON_RETURNING_NON_VOID))
|
||||
# include BOOST_PP_ITERATE()
|
||||
};
|
||||
|
||||
@@ -53,15 +53,15 @@ struct returning<void>
|
||||
{
|
||||
typedef void R;
|
||||
// Specializations for function pointers
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/returning.hpp>, \
|
||||
BOOST_PYTHON_FUNCTION_POINTER | BOOST_PYTHON_RETURNING_VOID)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
(4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/returning.hpp>, \
|
||||
BOOST_PYTHON_FUNCTION_POINTER | BOOST_PYTHON_RETURNING_VOID))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
// Specializations for member function pointers
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, 3, <boost/python/detail/returning.hpp>, \
|
||||
BOOST_PYTHON_POINTER_TO_MEMBER | BOOST_PYTHON_RETURNING_VOID)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
(4, (0, 3, <boost/python/detail/returning.hpp>, \
|
||||
BOOST_PYTHON_POINTER_TO_MEMBER | BOOST_PYTHON_RETURNING_VOID))
|
||||
# include BOOST_PP_ITERATE()
|
||||
};
|
||||
|
||||
@@ -133,8 +133,8 @@ struct returning<void>
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() & BOOST_PYTHON_POINTER_TO_MEMBER
|
||||
|
||||
// Outer iteration over cv-qualifications
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 \
|
||||
3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/returning.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 \
|
||||
(3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/returning.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 2 && BOOST_PP_RELATIVE_FLAGS(1) & BOOST_PYTHON_POINTER_TO_MEMBER
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
namespace boost { namespace python { namespace detail {
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/target.hpp>, BOOST_PYTHON_FUNCTION_POINTER)
|
||||
(4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/target.hpp>, BOOST_PYTHON_FUNCTION_POINTER))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 \
|
||||
4, (0, BOOST_PYTHON_CV_COUNT - 1, <boost/python/detail/target.hpp>, BOOST_PYTHON_POINTER_TO_MEMBER)
|
||||
(4, (0, BOOST_PYTHON_CV_COUNT - 1, <boost/python/detail/target.hpp>, BOOST_PYTHON_POINTER_TO_MEMBER))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
template <class R, class T>
|
||||
@@ -52,7 +52,7 @@ boost::type<BOOST_PP_IF(N, A0, void)>* target(R (*)(BOOST_PYTHON_UNARY_ENUM(N, A
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == BOOST_PYTHON_POINTER_TO_MEMBER
|
||||
// Outer over cv-qualifiers
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/target.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_2 (3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/target.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
#elif BOOST_PP_ITERATION_DEPTH() == 2
|
||||
|
||||
@@ -31,7 +31,7 @@ template <int nargs> struct make_holder;
|
||||
# define BOOST_PYTHON_DO_FORWARD_ARG(index, _) , f##index(a##index)
|
||||
|
||||
// specializations...
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/make_holder.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/make_holder.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
# undef BOOST_PYTHON_FORWARD_ARG
|
||||
|
||||
@@ -38,7 +38,7 @@ struct pointer_holder : instance_holder
|
||||
|
||||
// Forward construction to the held object
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/pointer_holder.hpp>, 1)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/pointer_holder.hpp>, 1))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
private: // required holder implementation
|
||||
@@ -58,7 +58,7 @@ struct pointer_holder_back_reference : instance_holder
|
||||
pointer_holder_back_reference(Pointer);
|
||||
|
||||
// Forward construction to the held object
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/pointer_holder.hpp>, 2)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/pointer_holder.hpp>, 2))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
private: // required holder implementation
|
||||
|
||||
@@ -30,7 +30,7 @@ template <class Held>
|
||||
struct value_holder : instance_holder
|
||||
{
|
||||
// Forward construction to the held object
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/value_holder.hpp>, 1)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/value_holder.hpp>, 1))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
private: // required holder implementation
|
||||
@@ -44,7 +44,7 @@ template <class Held, class BackReferenceType>
|
||||
struct value_holder_back_reference : instance_holder
|
||||
{
|
||||
// Forward construction to the held object
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/value_holder.hpp>, 2)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (4, (0, BOOST_PYTHON_MAX_ARITY, <boost/python/object/value_holder.hpp>, 2))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
private: // required holder implementation
|
||||
|
||||
@@ -102,7 +102,7 @@ namespace api
|
||||
//
|
||||
object operator()() const;
|
||||
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 3, (1, BOOST_PYTHON_MAX_ARITY, <boost/python/object_call.hpp>)
|
||||
# define BOOST_PP_ITERATION_PARAMS_1 (3, (1, BOOST_PYTHON_MAX_ARITY, <boost/python/object_call.hpp>))
|
||||
# include BOOST_PP_ITERATE()
|
||||
|
||||
// truth value testing
|
||||
|
||||
Reference in New Issue
Block a user