12345678910111213141516171819202122232425262728293031323334353637383940 |
- // Copyright David Abrahams 2004. 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/reference_existing_object.hpp>
- #include <boost/python/return_value_policy.hpp>
- struct A {};
- struct V
- {
- virtual ~V() {}; // silence compiler warningsa
- virtual void f() = 0;
- const A* inside() {return &a;}
- A a;
- };
- const A* outside(const V& v) {return &v.a;}
- BOOST_PYTHON_MODULE(bienstman1_ext)
- {
- using namespace boost::python;
- using boost::shared_ptr;
- using boost::python::return_value_policy;
- using boost::python::reference_existing_object;
- class_<A>("A");
- class_<V, boost::noncopyable>("V", no_init)
- .def("inside", &V::inside,
- return_value_policy<reference_existing_object>())
- .def("outside", outside,
- return_value_policy<reference_existing_object>())
- ;
- }
|