// 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 #include #include #include #if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) #include # include #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 : boost::mpl::true_ {}; } #endif color identity_(color x) { return x; } struct colorized { colorized() : x(red) {} color x; }; BOOST_PYTHON_MODULE(enum_ext) { enum_("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") .def_readwrite("x", px) ; #else class_("colorized") .def_readwrite("x", &colorized::x) ; #endif } #include "module_tail.cpp"