【发布时间】:2011-06-26 04:50:36
【问题描述】:
我正在为以下问题寻找一种 hacky 的解决方案: GCC 4.4+ 接受以下 c++0x 代码:
enum class my_enum
{
value1,
value2
};
允许这样使用:
my_enum e = my_enum::value1;
这带来了所有的花里胡哨。我想让这段代码与 MSVC 2010 兼容,大意是使用语法不会改变。我在here 之前已经对此进行了思考,并且接受的答案有效,但是对于枚举和枚举值的两个不同名称的需求正在扼杀这两种方法的兼容性。这使得按原样替换 C++0x 代码当然无法使用。我想知道是否有一些 #undef 和 #define 诡计可以解决这个问题,允许我使用 enum class-like 语法(也许没有严格的类型安全等),但至少相同句法。谢谢!
【问题讨论】:
标签: c++ class visual-c++ enums c++11