Is there a simple way to convert C++ enum to string?

后端 未结 30 2796
我在风中等你
我在风中等你 2020-11-22 10:37

Suppose we have some named enums:

enum MyEnum {
      FOO,
      BAR = 0x50
};

What I googled for is a script (any language) that scans all

30条回答
  •  青春惊慌失措
    2020-11-22 11:01

    Adding even more simplicity of use to Jasper Bekkers' fantastic answer:

    Set up once:

    #define MAKE_ENUM(VAR) VAR,
    #define MAKE_STRINGS(VAR) #VAR,
    #define MAKE_ENUM_AND_STRINGS(source, enumName, enumStringName) \
        enum enumName { \
        source(MAKE_ENUM) \
        };\
    const char* const enumStringName[] = { \
        source(MAKE_STRINGS) \
        };
    

    Then, for usage:

    #define SOME_ENUM(DO) \
        DO(Foo) \
        DO(Bar) \
        DO(Baz)
    ...
    MAKE_ENUM_AND_STRINGS(SOME_ENUM, someEnum, someEnumNames)
    

提交回复
热议问题