[PyQt] SIP and multiple inheritance ambiguity

Phil Thompson phil at riverbankcomputing.com
Fri Jun 10 14:55:35 BST 2016


On 8 Jun 2016, at 4:25 am, Scott Talbert <swt at techie.net> wrote:
> 
> 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.

Applied.

Thanks,
Phil


More information about the PyQt mailing list