[C++-SIG] Beginer questions

Geoffrey Furnish furnish at actel.com
Mon Nov 15 18:15:38 CET 1999


Ian already mentioned the possibility of writing your own type
extension.  Building on that notion...

Ephi Dror writes:
 > 1. At this point we are trying to wrap the C++ class as C, but our
 > problem is, how do we pass a pointer from Python to C++ so we can
 > keep the pointer to the class.

You can arrange that the methods of your type extension downcast the
"self" pointer passed to them, to make it a pointer to your object,
and then invoke member functions on it.  Something like this:

static PyObject *
myext_meth1( PyObject *self, PyObject *args )
{
    MyObject *myo = static_cast<MyObject *>(self);
    return myo->meth1( args );
}

 > 2. Is there any easer way to call the functions of C++ classes from
 > python instead of wrapping them with C functions.

You can write scripts to automate the production of wrappers like that 
shown above.  Or you can use CXX, as Ian mentioned.

Some formalization of the techniques exhibited in CXX is what several
of us regard as the end goal deliverable for this SIG.  But it is
proving challenging to do this, given the constraints of personal time 
and effort, as well as standards conformance.

-- 
Geoffrey Furnish            Actel Corporation        furnish at actel.com
Senior Staff Engineer      955 East Arques Ave       voice: 408-522-7528
Placement & Routing     Sunnyvale, CA   94086-4533   fax:   408-328-2303

"... because only those who write the code truly control the project."
						      -- Jamie Zawinski




More information about the Cplusplus-sig mailing list