SafeInt
SafeInt copied to clipboard
Enum isn't sufficiently excluded
This should be what's needed to prevent a SafeInt from being constructed from an enum, though a SafeInt of some defined type could be initialized from an enum. It still allows some things that don't especially make sense, like multiplying a SafeInt times an enum, or adding or several other things. It seems like that should be extremely unusual.
This also prevents SafeCast from casting TO an enum, though cast from an enum is by design.
An improvement that is not part of this fix is to discern the underlying type for an enum, which is possible for C++11 and later.