[PyQt] SIP and multiple inheritance ambiguity

Scott Talbert swt at techie.net
Tue Jun 7 04:55:34 BST 2016


On Fri, 3 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?

Scott


More information about the PyQt mailing list