[PyQt] SIP and multiple inheritance ambiguity

Scott Talbert swt at techie.net
Wed Jun 8 04:25:11 BST 2016


On Mon, 6 Jun 2016, Scott Talbert wrote:

>> Hi,
>> 
>> I'm trying to wrap a set of classes that have a diamond multiple 
>> inheritance hierarchy (A inherits from B and C; B and C inherit from D).
>> 
>> When SIP generates the cast_A function, it won't compile under GCC 6.1.1 
>> due to an ambiguous base error:
>> error: 'D' is an ambiguous base of 'A'
>>         return static_cast<D *>(sipCpp);
>> 
>> Any ideas on how to work around this, other than hand editing the cast_X 
>> function?
>
> Actually, I was wrong about this being related to a change in GCC.  It turns 
> out this is related to a SIP change in 4.18:
> https://www.riverbankcomputing.com/hg/sip/rev/14bfbaf7431a
>
> I'm thinking SIP could possibly check the list of target types and if there 
> are duplicates, it could omit those from the cast function?

Simple patch attached.

Scott
-------------- next part --------------
A non-text attachment was scrubbed...
Name: duplicate_supers.patch
Type: text/x-diff
Size: 739 bytes
Desc: 
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160607/65d79291/attachment.patch>


More information about the PyQt mailing list