Chris@16: # ifndef BOOST_PYTHON_SYNOPSIS Chris@16: # // Copyright David Abrahams 2002. Chris@16: # // Distributed under the Boost Software License, Version 1.0. (See Chris@16: # // accompanying file LICENSE_1_0.txt or copy at Chris@16: # // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: # if !defined(BOOST_PP_IS_ITERATING) Chris@16: # error Boost.Python - do not include this file! Chris@16: # endif Chris@16: Chris@16: # define N BOOST_PP_ITERATION() Chris@16: Chris@16: # define BOOST_PYTHON_MAKE_TUPLE_ARG(z, N, ignored) \ Chris@16: PyTuple_SET_ITEM( \ Chris@16: result.ptr() \ Chris@16: , N \ Chris@16: , python::incref(python::object(a##N).ptr()) \ Chris@16: ); Chris@16: Chris@16: template Chris@16: tuple Chris@16: make_tuple(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, A, const& a)) Chris@16: { Chris@16: tuple result((detail::new_reference)::PyTuple_New(N)); Chris@16: BOOST_PP_REPEAT_1ST(N, BOOST_PYTHON_MAKE_TUPLE_ARG, _) Chris@16: return result; Chris@16: } Chris@16: Chris@16: # undef BOOST_PYTHON_MAKE_TUPLE_ARG Chris@16: Chris@16: # undef N Chris@16: # endif // BOOST_PYTHON_SYNOPSIS