#ifndef BOOST_PYTHON_PTR_HPP # define BOOST_PYTHON_PTR_HPP # include // 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) // // Based on boost/ref.hpp, thus: // Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) // Copyright (C) 2001 Peter Dimov # include # include namespace boost { namespace python { template class pointer_wrapper { public: typedef Ptr type; explicit pointer_wrapper(Ptr x): p_(x) {} operator Ptr() const { return p_; } Ptr get() const { return p_; } private: Ptr p_; }; template inline pointer_wrapper ptr(T t) { return pointer_wrapper(t); } template class is_pointer_wrapper : public mpl::false_ { }; template class is_pointer_wrapper > : public mpl::true_ { }; template class unwrap_pointer { public: typedef T type; }; template class unwrap_pointer > { public: typedef T type; }; }} // namespace boost::python #endif