[PyQt] Request for Comments: Support for C++ Scoped Enums
Phil Thompson
phil at riverbankcomputing.com
Fri Aug 11 16:22:28 BST 2017
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.
Phil
More information about the PyQt
mailing list