Maybe I can go with something like this until C++ 0x is release and implemented in gcc and VC compiler ?
class A
{
public:
enum Value { None, Value1, Value2 };
};
class B
{
public:
enum Value { None, SomeType1, SomeType2 };
};
int main()
{
A::Value a = A::None;
B::Value b = B::None;
}