12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // 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)
- #include <boost/python/enum.hpp>
- #include <boost/python/def.hpp>
- #include <boost/python/module.hpp>
- #include <boost/python/class.hpp>
- #if BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
- #include <boost/python/detail/type_traits.hpp>
- # include <boost/mpl/bool.hpp>
- #endif
- using namespace boost::python;
- enum color { red = 1, green = 2, blue = 4, blood = 1 };
- #if BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
- namespace boost // Pro7 has a hard time detecting enums
- {
- template <> struct boost::python::detail::is_enum<color> : boost::mpl::true_ {};
- }
- #endif
- color identity_(color x) { return x; }
- struct colorized {
- colorized() : x(red) {}
- color x;
- };
- BOOST_PYTHON_MODULE(enum_ext)
- {
- enum_<color>("color")
- .value("red", red)
- .value("green", green)
- .value("blue", blue)
- .value("blood", blood)
- .export_values()
- ;
-
- def("identity", identity_);
- #if BOOST_WORKAROUND(__MWERKS__, <=0x2407)
- color colorized::*px = &colorized::x;
- class_<colorized>("colorized")
- .def_readwrite("x", px)
- ;
- #else
- class_<colorized>("colorized")
- .def_readwrite("x", &colorized::x)
- ;
- #endif
- }
- #include "module_tail.cpp"
|