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