Typesafe Enum
Represent type-safe enumerations in Java and C++.

See also References