]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/python/include/boost/python/detail/make_tuple.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / python / include / boost / python / detail / make_tuple.hpp
CommitLineData
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