В С++ 03 можно эмулировать строго типизированное перечисление, поместив его в класс (или пространство имен):
struct MyEnum
{
enum enumName
{
VALUE_1 = 1,
VALUE_2,
};
};
и использовать его:
MyEnum::enumName v = MyEnum::VALUE_1;
Можно ли сделать что-то подобное в C? Если да, то как?
Я пробовал вот так, но, конечно, это не работает:
struct A
{
enum aa
{
V1 = 5
};
};
int main()
{
A::aa a1 = A::V1;
enum A::aa a2 = A::V1;
struct A::aa a3 = A::V1;
return 0;
}