diff -r 000000000000 -r bde4ae8d615e os/ossrv/ossrv_pub/boost_apis/boost/python/tuple.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/python/tuple.hpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,70 @@ +// Copyright David Abrahams 2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef TUPLE_20020706_HPP +#define TUPLE_20020706_HPP + +# include <boost/python/detail/prefix.hpp> + +#include <boost/python/object.hpp> +#include <boost/python/converter/pytype_object_mgr_traits.hpp> +#include <boost/preprocessor/enum_params.hpp> +#include <boost/preprocessor/repetition/enum_binary_params.hpp> + +namespace boost { namespace python { + +namespace detail +{ + struct BOOST_PYTHON_DECL tuple_base : object + { + protected: + tuple_base(); + tuple_base(object_cref sequence); + + BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(tuple_base, object) + + private: + static detail::new_reference call(object const&); + }; +} + +class tuple : public detail::tuple_base +{ + typedef detail::tuple_base base; + public: + tuple() {} + + template <class T> + explicit tuple(T const& sequence) + : base(object(sequence)) + { + } + + public: // implementation detail -- for internal use only + BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(tuple, base) +}; + +// +// Converter Specializations // $$$ JDG $$$ moved here to prevent +// // G++ bug complaining specialization + // provided after instantiation +namespace converter +{ + template <> + struct object_manager_traits<tuple> + : pytype_object_manager_traits<&PyTuple_Type,tuple> + { + }; +} + +// for completeness +inline tuple make_tuple() { return tuple(); } + +# define BOOST_PP_ITERATION_PARAMS_1 (3, (1, BOOST_PYTHON_MAX_ARITY, <boost/python/detail/make_tuple.hpp>)) +# include BOOST_PP_ITERATE() + +}} // namespace boost::python + +#endif +