diff -r 000000000000 -r e4d67989cc36 ossrv_pub/boost_apis/boost/python/long.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ossrv_pub/boost_apis/boost/python/long.hpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,68 @@ +// 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 LONG_DWA2002627_HPP +# define LONG_DWA2002627_HPP + +# include + +# include +# include + +namespace boost { namespace python { + +namespace detail +{ + struct BOOST_PYTHON_DECL long_base : object + { + protected: + long_base(); // new long_ + explicit long_base(object_cref rhs); + explicit long_base(object_cref rhs, object_cref base); + + BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(long_base, object) + + private: + static detail::new_non_null_reference call(object const&); + static detail::new_non_null_reference call(object const&, object const&); + }; +} + +class long_ : public detail::long_base +{ + typedef detail::long_base base; + public: + long_() {} // new long_ + + template + explicit long_(T const& rhs) + : detail::long_base(object(rhs)) + { + } + + template + explicit long_(T const& rhs, U const& base) + : detail::long_base(object(rhs), object(base)) + { + } + + public: // implementation detail -- for internal use only + BOOST_PYTHON_FORWARD_OBJECT_CONSTRUCTORS(long_, base) +}; + +// +// Converter Specializations +// +namespace converter +{ + template <> + struct object_manager_traits + : pytype_object_manager_traits<&PyLong_Type,long_> + { + }; +} + +}} // namespace boost::python + +#endif // LONG_DWA2002627_HPP