[PyQt] Literals as template parameters

Phil Thompson phil at riverbankcomputing.com
Fri Jun 23 08:55:07 BST 2017

On 22 Jun 2017, at 5:59 pm, Shaheed Haque <srhaque at theiet.org> wrote:
> Hi Phil,
> SIP 4.19.3.dev1706161918 does not seem to like literals (or at least
> literal numbers) as template paramters. The "16" here:
>        static int parseParenthesizedList(const QByteArray &data,
> QVarLengthArray<QByteArray, 16> &result, int start = 0)
>            [int (const QByteArray &data, QVarLengthArray<QByteArray,
> 16> &result, int start = 0)];
> results in a syntax error. Temporarily changing the "16" to "a16"
> suppresses the error. (i've not been able to think of a way to use
> this as a workaround though).

The workaround is to define a C++ typedef in the %ModuleHeaderCode or %TypeHeaderCode and use that typedef in the declaration (and the mapped type definition that will be needed).


More information about the PyQt mailing list