[C++-sig] In a C++ extension, how to use a C++ class exported in another extension
Clark
foo.Clark at gmail.com
Mon Jul 4 05:46:11 CEST 2005
On Thu, Jun 30, 2005 at 02:17:02PM -0700, Ralf W. Grosse-Kunstleve wrote:
> Thanks for posting this. It is very interesting!
>
> David, how difficult would it be to provide something like
>
> boost::python::arg_from_swig_object<Foo>();
>
> so that we could wrap functions taking SWIG-wrapped arguments directly?
> I guess there is no easy way to construct SWIG-wrapped return values without a
> lot of support from SWIG, but automatically extracting the pointer to turn it
Yes. But we can still emulate what SWIG does to make a C++ Object be a
Python Object, and then return it.
> into a T*, T&, const T*, const T& argument seems like something that may not be
> too hard... true?
>
> Looking some more, isn't this almost it?
>
> http://www.boost.org/libs/python/doc/v2/lvalue_from_pytype.html
>
> But we want to do it without having the equivalent of noddy_NoddyType, just
> knowing that ((PySwigObject*)obj.ptr())->ptr gives us the T*.
>
> Cheers,
> Ralf
>
> --- Clark <foo.Clark at gmail.com> wrote:
>
> > It takes much time of me to solve this problem.
> >
> > The answer is:
> > A class member named "this" is added to every python class wrapped by
> > SWIG. The "this" is a "PySwigObject", which has a member points to
> > the C++ 'this' pointer.
>
>
>
> __________________________________
> Do you Yahoo!?
> Read only the mail you want - Yahoo! Mail SpamGuard.
> http://promotions.yahoo.com/new_mail
> _______________________________________________
> C++-sig mailing list
> C++-sig at python.org
> http://mail.python.org/mailman/listinfo/c++-sig
More information about the Cplusplus-sig
mailing list