[PyQt] Request for Comments: Support for C++ Scoped Enums
Phil Thompson
phil at riverbankcomputing.com
Sun Aug 13 17:26:15 BST 2017
On 11 Aug 2017, at 4:22 pm, Phil Thompson <phil at riverbankcomputing.com> wrote:
>
> At the moment SIP only supports C-like unscoped enums and implements them as sub-classes of int. The main weaknesses of these are the lack of type safety and the injection of the member names into the enclosing scope.
>
> These problems were fixed by the introduction of scoped enums in newer versions of C++, see...
>
> https://www.ibm.com/developerworks/rational/library/scoped-enums/index.html
>
> Note that Qt doesn't currently use scoped enums but I expect that to change.
>
> Scoped enums are much closer to the implementation of Python enums...
>
> https://docs.python.org/3/library/enum.html#module-enum
>
> I propose to add support for scoped enums and implement them using Python enums - specifically as sub-classes of Enum (and *not* IntEnum in order to preserve the type safety). Consequently Python v3.4 or later will be required for wrapping libraries using scoped enums.
>
> Any comments welcome.
Tonight's SIP snapshot will support C++11 scoped enums as described above. Consider this experimental (ie. not rigourously tested).
Phil
More information about the PyQt
mailing list