Hi Jim
Thanks...thats what i'm trying to do right now. Will post if any problems
occur.



On Fri, Mar 19, 2010 at 11:22 AM, Jim Bosch <tallji...@gmail.com> wrote:

> On Fri, 2010-03-19 at 10:56 +0800, hitesh dhiman wrote:
> >
> >
> > ---------- Forwarded message ----------
> > From: hitesh dhiman <hitesh.dhiman.1...@gmail.com>
> > Date: Thu, Mar 18, 2010 at 11:39 AM
> > Subject: passing pointers from python
> > To: Development of Python/C++ integration <cplusplus-sig@python.org>,
> > boost-us...@lists.boost.org
> >
> >
> > Hi all,
> > i'm trying to wrap c++ functions that have pointer variables. The test
> > example i'm using is shown below:
> > int World::addition(int* a, int* b)
> > {
> > int z = *a + *b;
> > return z;
> > }
> >
> >
> > Now, i defined it in my wrapper as :
> > .def("addition", &World::addition)
> >
> >
> > My code compiles, but when I try to execute it from python, i get this
> > error:
> > Python Argument types in World.Addition(World, int, int) did not match
> > C++ signature: addition(class World {lvalue}, int* , int*)
> >
> >
> > Is there a workaround for this??
> >
>
> I can't think of an easy one - your C++ function signature implies that
> it could change the arguments (otherwise, why pass by pointer?), but
> Python integers are immutable objects, and can't be changed when passed
> as arguments.  That's why Boost.Python isn't doing the conversion
> automatically.
>
> If your code doesn't need to actually modify its arguments - as is the
> case in your example - you can of course write C++ wrappers that take
> arguments by value and forward them as pointers, and just wrap those
> functions for Python.  Note that you can wrap a free function that takes
> a World& as its first argument as a member function of the World class;
> there will be no difference between that and wrapping a true member
> function on the Python side.
>
>
> Jim Bosch
>
>
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>



-- 
Regards,
Hitesh Dhiman
Electrical Engineering
National University of Singapore
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to