There doesn't really seem to be much gained from wrapping everything in a class, but perhaps I'm missing something? For one it's not possible to forward declare the enum any longer since it's nested. If you try to retrofit it into an existing code base you run into a myriad of problems because suddenly your enums aren't really enums any longer. Enums are strongly typed from the get go, so it would seem most if not all the functionality could be had from generating function overloads anyway?
There doesn't really seem to be much gained from wrapping everything in a class, but perhaps I'm missing something? For one it's not possible to forward declare the enum any longer since it's nested. If you try to retrofit it into an existing code base you run into a myriad of problems because suddenly your enums aren't really enums any longer. Enums are strongly typed from the get go, so it would seem most if not all the functionality could be had from generating function overloads anyway?