annotate DEPENDENCIES/generic/include/boost/python/detail/make_tuple.hpp @ 125:34e428693f5d vext

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