| // 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/module.hpp> |
| #include <boost/python/def.hpp> |
| #include <boost/python/class.hpp> |
| #include <boost/python/implicit.hpp> |
| #include <boost/mpl/list.hpp> |
| |
| struct Type1 {}; |
| |
| struct Term {Term(Type1 const&) {} }; |
| |
| struct Expression {void add(Term const&) {} }; |
| |
| BOOST_PYTHON_MODULE(bienstman4_ext) |
| { |
| using namespace boost::python; |
| using boost::mpl::list; |
| |
| implicitly_convertible<Type1,Term>(); |
| |
| class_<Expression>("Expression") |
| .def("add", &Expression::add) |
| ; |
| |
| class_<Type1>("T1") |
| ; |
| |
| class_<Term>("Term", init<Type1&>()) |
| ; |
| |
| Type1 t1; |
| Expression e; |
| e.add(t1); |
| } |
| |