| // 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 SELF_DWA2002531_HPP |
| # define SELF_DWA2002531_HPP |
| |
| # include <boost/python/detail/prefix.hpp> |
| |
| namespace boost { namespace python { |
| |
| #define BOOST_PYTHON_SELF_IS_CLASS |
| |
| // Sink self_t into its own namespace so that we have a safe place to |
| // put the completely general operator templates which operate on |
| // it. It is possible to avoid this, but it turns out to be much more |
| // complicated and finally GCC 2.95.2 chokes on it. |
| namespace self_ns |
| { |
| # ifndef BOOST_PYTHON_SELF_IS_CLASS |
| enum self_t { self }; |
| # else |
| struct self_t {}; |
| extern BOOST_PYTHON_DECL self_t self; |
| # endif |
| } |
| |
| using self_ns::self_t; |
| using self_ns::self; |
| |
| }} // namespace boost::python |
| |
| #endif // SELF_DWA2002531_HPP |