[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:

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?


More information about the PyQt mailing list