C++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;
}