]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | # ifndef BOOST_PYTHON_SYNOPSIS |
2 | # // Copyright David Abrahams 2002. | |
3 | # // Distributed under the Boost Software License, Version 1.0. (See | |
4 | # // accompanying file LICENSE_1_0.txt or copy at | |
5 | # // http://www.boost.org/LICENSE_1_0.txt) | |
6 | ||
7 | # if !defined(BOOST_PP_IS_ITERATING) | |
8 | # error Boost.Python - do not include this file! | |
9 | # endif | |
10 | ||
11 | # define N BOOST_PP_ITERATION() | |
12 | ||
13 | # define BOOST_PYTHON_MAKE_TUPLE_ARG(z, N, ignored) \ | |
14 | PyTuple_SET_ITEM( \ | |
15 | result.ptr() \ | |
16 | , N \ | |
17 | , python::incref(python::object(a##N).ptr()) \ | |
18 | ); | |
19 | ||
20 | template <BOOST_PP_ENUM_PARAMS_Z(1, N, class A)> | |
21 | tuple | |
22 | make_tuple(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, A, const& a)) | |
23 | { | |
24 | tuple result((detail::new_reference)::PyTuple_New(N)); | |
25 | BOOST_PP_REPEAT_1ST(N, BOOST_PYTHON_MAKE_TUPLE_ARG, _) | |
26 | return result; | |
27 | } | |
28 | ||
29 | # undef BOOST_PYTHON_MAKE_TUPLE_ARG | |
30 | ||
31 | # undef N | |
32 | # endif // BOOST_PYTHON_SYNOPSIS |