我正在寻找一种解决以下问题的hacky解决方案:GCC 4.4+接受以下c ++ 0x代码:
enum class my_enum
{
value1,
value2
};
Run Code Online (Sandbox Code Playgroud)
允许使用这样的:
my_enum e = my_enum::value1;
Run Code Online (Sandbox Code Playgroud)
这带来了所有的钟声和口哨声.我想使这段代码与MSVC 2010兼容,即使用语法不会改变.我在此之前已经考虑过这个问题,并且接受的答案有效,但是枚举和枚举值的两个不同名称的需要正在破坏两种方法的兼容性.这使得它当然无法替换C++ 0x代码.我想知道是否有一些#undef和#define技巧可以解决这个问题,允许我使用 enum class类似语法(可能没有严格的类型安全性等),但至少是相同的语法.谢谢!