Chris@16: // Copyright David Abrahams 2002. Chris@16: // Distributed under the Boost Software License, Version 1.0. (See Chris@16: // accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: #ifndef SELF_DWA2002531_HPP Chris@16: # define SELF_DWA2002531_HPP Chris@16: Chris@16: # include Chris@16: Chris@16: namespace boost { namespace python { Chris@16: Chris@16: #define BOOST_PYTHON_SELF_IS_CLASS Chris@16: Chris@16: // Sink self_t into its own namespace so that we have a safe place to Chris@16: // put the completely general operator templates which operate on Chris@16: // it. It is possible to avoid this, but it turns out to be much more Chris@16: // complicated and finally GCC 2.95.2 chokes on it. Chris@16: namespace self_ns Chris@16: { Chris@16: # ifndef BOOST_PYTHON_SELF_IS_CLASS Chris@16: enum self_t { self }; Chris@16: # else Chris@16: struct self_t {}; Chris@16: extern BOOST_PYTHON_DECL self_t self; Chris@16: # endif Chris@16: } Chris@16: Chris@16: using self_ns::self_t; Chris@16: using self_ns::self; Chris@16: Chris@16: }} // namespace boost::python Chris@16: Chris@16: #endif // SELF_DWA2002531_HPP