我具有以下在C + +枚举;
typedef enum
{
APP_NONE = 0,
APP_SESSION = 0x80000001,
APP_TITLE = 2,
} APP_TYPE;
我写一个测试功能,其接受字符串,获取相关整数,例如:getEnumByString( “APP_NONE”)= 0; 或反之则getEnumString(0)=“APP_NONE”。
它可能以及如何完成它?
我具有以下在C + +枚举;
typedef enum
{
APP_NONE = 0,
APP_SESSION = 0x80000001,
APP_TITLE = 2,
} APP_TYPE;
我写一个测试功能,其接受字符串,获取相关整数,例如:getEnumByString( “APP_NONE”)= 0; 或反之则getEnumString(0)=“APP_NONE”。
它可能以及如何完成它?
您可以将enum
值推入容器中,如向量或集合,然后遍历该值。
std::vector<APP_TYPE> types;
types.push_back(APP_NONE);
types.push_back(APP_SESSION);
types.push_back(APP_TITLE);
可以使用映射到enum
值与一个字符串,反之亦然关联。
std::map<APP_TYPE, std::string> type2string;
type2string[APP_NONE] = "APP_NONE";
type2string[APP_SESSION] = "APP_SESSION";
type2string[APP_TITLE] = "APP_TITLE";
更经调查是不可能的,因为枚举是在运行时只是整数,没有相关的字符串名称的信息。 –