[PyQt] SIP template-based class with argument having default constructor as default value

Shaheed Haque srhaque at theiet.org
Tue Jun 13 20:45:15 BST 2017


Not sure if there is a formal channel. Phil is usually pretty alter to
this mailer...

On 13 June 2017 at 19:50, Denis Rouzaud <denis.rouzaud at gmail.com> wrote:
> Hi Shaheed,
>
> Thanks a lot for your feedback.
> Is there a place to report issues?
>
> Cheers
> Denis
>
>
> Le mar. 13 juin 2017 à 19:23, Shaheed Haque <srhaque at theiet.org> a écrit :
>>
>> On 13 June 2017 at 15:16, Denis Rouzaud <denis.rouzaud at gmail.com> wrote:
>> >
>> > Hi all,
>> >
>> > Title says it all ;)
>> >
>> > I think there is an issue on how SIP handles the default value argument
>> > for
>> > template-based classes.
>> > SIP don't replaces the T var by the implemented  base class constructor.
>> > See
>> > below.
>> >
>> > Let's say I have
>> >
>> > template <typename T>
>> > class Base
>> > {
>> >   pubic:
>> >     Base( const T &epoch = T()) : mEpoch( epoch ){}
>> >   private:
>> >     T mEpoch;
>> > }
>> >
>> > typedef Base< QDate > MyDate;
>> > typedef Base< QDateTime > MyDateTime;
>> >
>> >
>> > Here is the SIP code generated:
>> >
>> > static void *init_type_MyDate(sipSimpleWrapper *, PyObject *sipArgs,
>> > PyObject *sipKwds, PyObject **sipUnused, PyObject **, PyObject
>> > **sipParseErr)
>> > {
>> >     MyDate *sipCpp = 0;
>> >     {
>> >         const QDate& a0def = T();
>> >         const QDate* a0 = &a0def;
>> >         int a0State = 0;
>> > ......
>> >
>> >
>> > I get an error:
>> > use of undeclared identifier 'T'
>> >      in   const QDate& a0def = T();
>> >
>> >
>> > Does someone confirm?
>>
>>
>> I see it too:
>>
>> /tmp/tmpQYVtIS/tmp2/tmp/PySample/sipPySampleQStringBase.cpp:96:37:
>> error: ‘T’ was not declared in this scope
>>          const  ::QString& a0def = T();
>>
>>
>> > Is there a workaround?
>> > Cheers,
>> > Denis
>> >
>> >
>> >
>> > _______________________________________________
>> > PyQt mailing list    PyQt at riverbankcomputing.com
>> > https://www.riverbankcomputing.com/mailman/listinfo/pyqt


More information about the PyQt mailing list