[C++-sig] [boost.python] convert swig-wrapped c++-return values to python with boost.python
David Abrahams
dave at boostpro.com
Mon Jul 21 14:09:17 CEST 2008
--
Dave Abrahams
Boostpro Computing
http://boostpro.com
On Jul 21, 2008, at 4:56 AM, Maximilian Matthe <Maxi.Matthe at web.de>
wrote:
> David Abrahams schrieb:
>> on Sun Jul 20 2008, Maximilian Matthe <Maxi.Matthe-AT-web.de> wrote:
>>> David Abrahams schrieb:
>>>> on Sun Jul 20 2008, Maximilian Matthe <Maxi.Matthe-AT-web.de>
>>>> wrote:
>>>>
>
>>>>> on Sun Jul 20 2008, Maximilian Matthe <Maxi.Matthe-AT-web.de>
>>>>> wrote:
>>>>> I dont want to return wxWindow by value, but by reference/
>>>>> adress. Thus
>>>>> the bp::reference_existing_object call policy.
>> You can't use that policy unless you're returning a Boost.Python-
>> wrapped
>> class. Its whole purpose in life is to make an instance of the class
>> where the C++ object is held by raw pointer. I suggest you leave
>> it out.
>
> Uh, well, then this could be written into the documentation,
> couldn't it?
Lots more could. Care to submit a patch?
> Then I wouldn't have searched so long for a solution.
Sorry
>
>> I can't imagine what purpose that const_cast could serve. Surely
>> wxPyMake_wxObject doesn't modify its first argument? I suggest you
>> leave it out.
>>
> No, the const_cast is needed. wxPyMake_wxObject wraps a PyObject
> around the passed wxObject (any wxWidgets-Class). This object is
> then passed to python (contains a pointer to the actual wx-object),
> which can be modified in python, thus the const_cast is needed.
I can't see the code any more, but it sure looked to me like you were
adding or removing const from/to the pointer type rather than the
pointee.
>
>> HTH,
>
> I have found a solution after a very long search and with help from
> the irc-channel: Roman Yakovenko has created the return_value_policy
> return_pointee_value. Here's his announcement for that:
> http://mail.python.org/pipermail/c++-sig/2006-November/011568.html
> Maybe it would be good to have that in boost-python? He has already
> added it to his Py++ code generator.
A patch with docs and tests would go as long way toward making that
happen.
>
> So my problem seems to be solved in this case...
> Thanks for your help!
NO
> PS: I'm currently reading your MPL-Book and like it very much,
> although it's quite complicated to see through all the details after
> reading one chapter once :-)
Glad you're enjoying!
More information about the Cplusplus-sig
mailing list