理想情况下我想写:
constexpr std:map<std::string, std::string> my_map =
{{"key1", "val1"}, {"key2", "val2"}, };
或
constexpr std:unordered_map<std::string, std::string> my_map =
{{"key1", "val1"}, {"key2", "val2"}, };
但不可能(至少不能使用当前语言c++17)
那还有什么选择呢?
例如,我 可以做的事情如下:
constexpr std::initializer_list< std::pair<const char*, const char *> > my_map =
{{"key1", "val1"}, {"key2", "val2"}, };
,然后在需要时在运行时构造一个std::map
。我知道我也可以使用inline
而不是constexpr
,但是那时我将无法在编译时使用(也许在开发的后期)。但是,这有点不令人满意(因为我不得不在运行时仅为查找构造地图),我想知道:是否有更好的解决方案?