2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-19 04:22:16 +00:00

This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.

[SVN r35366]
This commit is contained in:
nobody
2006-09-28 14:41:02 +00:00
parent 375cc3aa93
commit 72b06e70ee
2 changed files with 53 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
#include "boost/python.hpp"
#include <memory>
struct vector
{
virtual ~vector() {}
vector operator+( const vector& x ) const
{ return vector(); }
vector& operator+=( const vector& x )
{ return *this; }
vector operator-() const
{ return *this; }
};
struct dvector : vector
{};
using namespace boost::python;
struct vector_wrapper
: vector, wrapper< vector >
{
vector_wrapper(vector const&) {}
vector_wrapper() {}
};
BOOST_PYTHON_MODULE( operators_wrapper_ext )
{
class_< vector_wrapper >( "vector" )
.def( self + self )
.def( self += self )
.def( -self )
;
scope().attr("v") = vector();
std::auto_ptr<vector> dp(new dvector);
register_ptr_to_python< std::auto_ptr<vector> >();
scope().attr("d") = dp;
}

11
test/operators_wrapper.py Normal file
View File

@@ -0,0 +1,11 @@
from operators_wrapper_ext import *
class D2(vector): pass
d2 = D2()
for lhs in (v,d,d2):
-lhs
for rhs in (v,d,d2):
lhs + rhs
lhs += rhs