# endif // POINTER_HOLDER_DWA20011215_HPP /* --------------- pointer_holder --------------- */ #elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1 # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) # line BOOST_PP_LINE(__LINE__, pointer_holder.hpp) # endif # define N BOOST_PP_ITERATION() # if (N != 0) template< BOOST_PP_ENUM_PARAMS_Z(1, N, class A) > # endif pointer_holder(PyObject* self BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, A, a)) : m_p(new Value( BOOST_PP_REPEAT_1ST(N, BOOST_PYTHON_UNFORWARD_LOCAL, nil) )) { python::detail::initialize_wrapper(self, &*this->m_p); } # undef N /* --------------- pointer_holder_back_reference --------------- */ #elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 2 # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) # line BOOST_PP_LINE(__LINE__, pointer_holder.hpp(pointer_holder_back_reference)) # endif
// --------------- value_holder --------------- #elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 1 # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) # line BOOST_PP_LINE(__LINE__, value_holder.hpp(value_holder)) # endif # define N BOOST_PP_ITERATION() # if (N != 0) template <BOOST_PP_ENUM_PARAMS_Z(1, N, class A)> # endif value_holder( PyObject* self BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, A, a)) : m_held( BOOST_PP_REPEAT_1ST(N, BOOST_PYTHON_UNFORWARD_LOCAL, nil) ) { python::detail::initialize_wrapper(self, &this->m_held); } # undef N // --------------- value_holder_back_reference --------------- #elif BOOST_PP_ITERATION_DEPTH() == 1 && BOOST_PP_ITERATION_FLAGS() == 2 # if !(BOOST_WORKAROUND(__MWERKS__, > 0x3100) \ && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3201))) # line BOOST_PP_LINE(__LINE__, value_holder.hpp(value_holder_back_reference))
template<typename R, typename O BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class AC)> struct ReturnExtract<R (O::*)(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, AC, ac) )> { typedef R value; enum { GIL=true }; }; // template<typename R, typename O BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class AC)> // struct ReturnExtract<R (O::*)(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, AC, ac) ) throw()> // { // typedef R value; // enum { GIL=true }; // }; template<typename R, typename O BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class AC)> struct ReturnExtract<R (O::*)(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, AC, ac) ) const> { typedef R value; enum { GIL=true }; }; // template<typename R, typename O BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class AC)> // struct ReturnExtract<R (O::*)(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, AC, ac) ) const throw()> // { // typedef R value; // enum { GIL=true }; // }; template<typename R BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class AC)> struct ReturnExtract<R (*)(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, AC, ac) )> {