相关疑难解决方法(0)

"枚举类"仿真或MSVC 10.0的固体替代品

我正在寻找一种解决以下问题的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类似语法(可能没有严格的类型安全性等),但至少是相同的语法.谢谢!

c++ enums class visual-c++ c++11

12
推荐指数
2
解决办法
3929
查看次数

如何使用超过max int的值创建枚举?

我正在使用c ++创建枚举,以使用二进制标志创建有限状态机.看起来像:

enum VStates
{
    NEUTRAL         =   0x00000000,     // 000000
    //  Physical Status
    DRY             =   0x00000001,     // 000001
    WET             =   0x00000002,     // 000010
    HOT             =   0x00000004,     // 000100
    COLD            =   0x00000008,     // 001000
    BURNED          =   0x00000016,     // etc..
    FROZEN          =   0x00000032,
    EROS            =   0x00000064,     // 
    THANATOS        =   0x00000128,     // 
    SLEEP           =   0x00000256,
    STUNNED         =   0x00000512,
    PARALYZED       =   0x00001024,
    POISONED        =   0x00002048,     //
    BLIND           =   0x00004096,
    SOFT            =   0x00008192,     // Flexible
    TOUGH           =   0x00016384,     // Resistent
    MAGNETIZED      =   0x00032768,
    POSSEDERUNT     = …
Run Code Online (Sandbox Code Playgroud)

c++ variables enums

10
推荐指数
2
解决办法
2829
查看次数

什么是枚举类,我为什么要关心?

对于一个从未写过一行C++ 11,并且目前没有机会用C++ 11编程的人,你能用一个简短的段落告诉我:

什么是"枚举类",为什么我们需要它?

c++ enums c++11 enum-class

6
推荐指数
1
解决办法
1903
查看次数

标签 统计

c++ ×3

enums ×3

c++11 ×2

class ×1

enum-class ×1

variables ×1

visual-c++ ×1