]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | #include "boost/python.hpp" |
2 | #include <memory> | |
3 | ||
4 | struct vector | |
5 | { | |
6 | virtual ~vector() {} | |
7 | ||
8 | vector operator+( const vector& ) const | |
9 | { return vector(); } | |
10 | ||
11 | vector& operator+=( const vector& ) | |
12 | { return *this; } | |
13 | ||
14 | vector operator-() const | |
15 | { return *this; } | |
16 | }; | |
17 | ||
18 | struct dvector : vector | |
19 | {}; | |
20 | ||
21 | using namespace boost::python; | |
22 | ||
23 | struct vector_wrapper | |
24 | : vector, wrapper< vector > | |
25 | { | |
26 | vector_wrapper(vector const&) {} | |
27 | vector_wrapper() {} | |
28 | }; | |
29 | ||
30 | BOOST_PYTHON_MODULE( operators_wrapper_ext ) | |
31 | { | |
32 | class_< vector_wrapper >( "vector" ) | |
33 | .def( self + self ) | |
34 | .def( self += self ) | |
35 | .def( -self ) | |
36 | ; | |
37 | ||
38 | scope().attr("v") = vector(); | |
39 | std::auto_ptr<vector> dp(new dvector); | |
40 | register_ptr_to_python< std::auto_ptr<vector> >(); | |
41 | scope().attr("d") = dp; | |
42 | } |