No, there is not.
enum
are really the poor thing in C++, and that's unfortunate of course.
Even the class enum
introduced in C++0x does not address this extensibility issue (though they do some things for type safety at least).
The only advantage of enum
is that they do not exist: they offer some type safety while not imposing any runtime overhead as they are substituted by the compiler directly.
If you want such a beast, you'll have to work yourself:
- create a class
MyEnum
, that contains an int (basically)
- create named constructors for each of the interesting values
you may now extend your class (adding named constructors) at will...
That's a workaround though, I have never found a satistifying way of dealing with an enumeration...
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…