// 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 INSTANCE_DWA200295_HPP # define INSTANCE_DWA200295_HPP # include # include # include namespace boost { namespace python { struct BOOST_PYTHON_DECL_FORWARD instance_holder; }} // namespace boost::python namespace boost { namespace python { namespace objects { // Each extension instance will be one of these template struct instance { PyObject_VAR_HEAD PyObject* dict; PyObject* weakrefs; instance_holder* objects; typedef typename type_with_alignment< ::boost::alignment_of::value >::type align_t; union { align_t align; char bytes[sizeof(Data)]; } storage; }; template struct additional_instance_size { typedef instance instance_data; typedef instance instance_char; BOOST_STATIC_CONSTANT( std::size_t, value = sizeof(instance_data) - BOOST_PYTHON_OFFSETOF(instance_char,storage)); }; }}} // namespace boost::python::object #endif // INSTANCE_DWA200295_HPP