Boost logo

Boost Users :

From: David Abrahams (dave_at_[hidden])
Date: 2004-07-06 04:47:20

mayankg_at_[hidden] writes:

Please bring Boost.Python questions to the C++-sig:

> Hi,
> I have the following type of functions in a class say "MyClass", which I have
> exported to python.
> 1) func1(long *plong)
> 2) func2(TempClass **pptempclass) (where TempClass is some other class)
> Now, I exported these using the following:
> .def("func1", &MyClass::func1)
> .def("func2", &MyClass::func2)
> and it compiled well.
> But now when I try to use them in a python script, I have no clue as to how I
> create and pass:
> 1) a long pointer as argument to func1
> 2) a double pointer to TempClass as argument to func2
> How do I achieve this behaviour?

You don't. Python ints and floats are immutable, so you can't pass
them to a C++ function that could change them.

> 1) Do I have to wrap the above functions> If yes, then how? How will they be
> used in python then?

The latter is the question I would ask you: how would you like/expect
to be able to use them from Python? You have to come up with an
appropriate interface (e.g. "in Python func1 accepts and returns an
int"); once you've done that, it's usually easy to wrap the function.

Dave Abrahams
Boost Consulting

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at