[C++-sig] Convert C++ Class to exposed class and back
Stefan Seefeld
seefeld at sympatico.ca
Tue Feb 12 13:45:23 CET 2008
Marcus Jannes wrote:
> It should read ExpClass not c_class here of course:
>
> ExpClass pycall(ExpClass c){
> PyObject *py_obj;
> ExpClass c_result;
> py_obj = PyBuildValue("O",c); //does not work! Provide converter function with "O&" argument ?
> c_result = SomeConverterToC(py_obj); //???
> return c_result;
What are you trying to do here ? What is 'c' ? There shouldn't be any
need to use PyObject raw pointers at all. Assuming 'ExpClass' has
already been exported, the following should Just Work:
ExpClass a = ...;
bp::object o(a); //<--- now holds a copy of 'a'
...
ExpClass b = bp::extract<ExpClass>(o); //<--- attempts to extract an
// ExpClass from 'o'
> };
Just declare 'pycall' in your module:
bp::def("pycall", pycall);
HTH,
Stefan
--
...ich hab' noch einen Koffer in Berlin...
More information about the Cplusplus-sig
mailing list