When an enum defines class methods, etc. there is an anomaly where you cannot determine the value of the enum from the value of this. Also, you can only convert (without a cast) this to address type. The value of *this is unuable (it is the class value, which cannot be the value of any other expression).
If, however, the enum class type inherits from the instance type and we store the instance value in the base clas, then *this can convert to the base class (i.e. the instance type), which makes intuitive sense.
When an enum defines class methods, etc. there is an anomaly where you cannot determine the value of the enum from the value of this. Also, you can only convert (without a cast) this to address type. The value of *this is unuable (it is the class value, which cannot be the value of any other expression).
If, however, the enum class type inherits from the instance type and we store the instance value in the base clas, then *this can convert to the base class (i.e. the instance type), which makes intuitive sense.