gpt4 book ai didi

c++ - 无法访问 const static std::map 枚举结构

转载 作者:行者123 更新时间:2023-11-30 00:48:22 24 4
gpt4 key购买 nike

我正在尝试使用枚举结构映射来保证配置值的默认值(如果它不存在)并保证只能访问“真实”配置值。(无 std::string 获取)

所以标题看起来像这样:

enum ConfigValues
{
LOG_LEVEL,
};

class Config
{
public:
std::string get(const ConfigValues& key);
private:
struct ConfigMapping
{
std::string configKeyString;
std::string defaultValue;
};

const static std::map<ConfigValues, ConfigMapping> m_mapping;
}

cpp 包含以下内容:

const std::map<ConfigValues, Config::ConfigMapping> Config::m_mapping=
{
{LOG_LEVEL, { "logLevel", "5" } },
};
std::string Config::get(const ConfigValues& key)
{
std::string key = m_mapping[key].configKeyString; // <-- Does not work
}

但是我无法访问 map 。

最佳答案

operator[] 对于 std::map 来说不是常量。

使用at相反。

C++11 之前:

如果您不使用 C++11,则必须使用 find它有一个 const 版本。

关于c++ - 无法访问 const static std::map 枚举结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31670484/

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