我有很多枚举声明,例如
typedef enum {
E_FOO_1,
E_FOO_RANDOM,
E_FOO_25,
} E_FOO;
typedef enum {
E_BAR_RANDOM,
E_BAR_SOMETHING,
E_BAR_WHATEVER,
} E_BAR;
我需要映射到字符串
std::map<E_FOO, const char*> fooMap = {
{E_FOO_1, "completly different string"},
{E_FOO_RANDOM, "hi"},
{E_FOO_25, "down"},
};
std::map<E_BAR, const char*> barMap = {
{E_BAR_RANDOM, "1234"},
{E_BAR_SOMETHING, "3},
{E_BAR_WHATEVER, "45"},
};
反正有没有编写一个函数,该函数的内容类似于(uint8_t someEnumValue, std::map<any, const char*>)
并只是返回字符串?
在实际应用中,结构复杂得多,enums
由某些C代码处理,将枚举值处理为int
或uint8_t
没问题,但是我不太习惯C ++,因此看不到将这些参数传递给通用函数的方法。
可以通过使用模板来完成吗?而且不会因为每个enum
函数都需要编译而炸裂了已编译的代码(该函数将在一个更大的类中,因此我需要对整个类进行模板化。)
谢谢!