gpt4 book ai didi

c++ - 将 C++ 枚举映射为 const char*

转载 作者:搜寻专家 更新时间:2023-10-31 00:40:58 25 4
gpt4 key购买 nike

我有以下枚举和映射:

typedef enum {
MaxX = 0,
MaxY,
MaxCells,
MaxCycles,
Threes
} SettingName;

typedef std::map<SettingName, const char*> SettingNameCollection;

SettingNameCollection settingNames;

我有以下函数来返回枚举名称:

const char* gofBoard::getSettingName(unsigned x) {
return settingNames[static_cast<SettingName>(x)];
}

根据我的阅读,它应该可以工作,但该函数不返回任何内容。没有编译时错误,也没有运行时错误。

最佳答案

这是我的建议:

1- 编写这个宏:

#define SMART_STRINGIFY_CASE(ENUM_CODE) case ENUM_CODE: 返回 # ENUM_CODE

2- 编写这个函数:

const char* SettingNamesToString( settingNames const input)
{
switch(input)
{
SMART_STRINGIFY_CASE(MaxX);
SMART_STRINGIFY_CASE(MaxY);
...
default:
// your own !
}

关于c++ - 将 C++ 枚举映射为 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13854843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com