1 // Copyright David Abrahams 2002. 2 // Distributed under the Boost Software License, Version 1.0. (See 3 // accompanying file LICENSE_1_0.txt or copy at 4 // http://www.boost.org/LICENSE_1_0.txt) 5 #ifndef RAW_PYOBJECT_DWA2002628_HPP 6 # define RAW_PYOBJECT_DWA2002628_HPP 7 8 namespace boost { namespace python { namespace detail { 9 10 // 11 // Define some types which we can use to get around the vagaries of 12 // PyObject*. We will use these to initialize object instances, and 13 // keep them in namespace detail to make sure they stay out of the 14 // hands of users. That is much simpler than trying to grant 15 // friendship to all the appropriate parties. 16 // 17 18 // New references are normally checked for null 19 struct new_reference_t; 20 typedef new_reference_t* new_reference; 21 22 // Borrowed references are assumed to be non-null 23 struct borrowed_reference_t; 24 typedef borrowed_reference_t* borrowed_reference; 25 26 // New references which aren't checked for null 27 struct new_non_null_reference_t; 28 typedef new_non_null_reference_t* new_non_null_reference; 29 30 }}} // namespace boost::python::detail 31 32 #endif // RAW_PYOBJECT_DWA2002628_HPP 33