SIP: using %InstanceCode for pure virtual class

James Jurack James.Jurack at
Mon Aug 9 16:26:01 BST 2021

Thank you for that! I had somehow missed the annotations documentation entirely. I think perhaps /Abstract/ is the one I need in this case, but I seem to be on the right track now. Thanks again!


James Jurack

Systems Engineer

[cid:6ba39e1a-7562-4c91-9062-8acc474a02a4]                                                                                                 [cid:fc8c1e49-c487-4366-99a3-ef3c4077bc1b]

5425 Warner Rd. | Suite 13 | Valley View, OH 44125 |<>

P. +1.216.447.8950 x2013 | F: +1.216.447.8951 | james.jurack at<mailto:email at>

From: Phil Thompson <phil at>
Sent: Saturday, August 7, 2021 5:01 AM
To: James Jurack <James.Jurack at>
Cc: pyqt at <pyqt at>
Subject: Re: SIP: using %InstanceCode for pure virtual class

***NOTICE*** This came from an external source. Use caution when replying, clicking links, or opening attachments.

On 06/08/2021 21:12, James Jurack wrote:
> Hello,
> I am trying to use SIP to wrap a pure virtual class. Since it does not
> have a callable constructor, it instead has a static factory function
> that returns an instance of a hidden subclass.
> From the docs, I've gathered that SIP provides %InstanceCode to cover
> this use case, but it appears it's not doing anything. My class is
> defined in my .sip file like so:
> class MyLib
> {
> %TypeHeaderCode
> #include <MyLib.h>
> %End
> %InstanceCode
>     sipCpp = ::MyLib::Create();
> %End
> };
> But there is no change in the CPP code that SIP generates, whether I
> include the %InstanceCode or not; it's still trying to call my class's
> constructor directly, and I can't find my call to Create() anywhere in
> the generated code.
> Am I misunderstanding how %InstanceCode is supposed to work?

You haven't told SIP that there are no default ctors. See...*class-annotation-NoDefaultCtors__;Iw!!HKOSU0g!S_W52V65neQiX3WDsLXU8dQBvA-Cc2dMuk6Q22pZQx7TPxi1LAuV9jcjr8xYYQEPGWk$

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Outlook-vdh5tn3i.jpg
Type: image/jpeg
Size: 1664 bytes
Desc: Outlook-vdh5tn3i.jpg
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Outlook-jbgh1mit.jpg
Type: image/jpeg
Size: 1151 bytes
Desc: Outlook-jbgh1mit.jpg
URL: <>

More information about the PyQt mailing list