]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/python/test/operators_wrapper.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / python / test / operators_wrapper.cpp
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 }