constexpr映射要使用什么类型?

时间:2019-05-06 12:39:43

标签: c++ c++17 constexpr stdmap

理想情况下我想写:

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"}, };

但不可能(至少不能使用当前语言

那还有什么选择呢?

例如,我 可以做的事情如下:

constexpr std::initializer_list< std::pair<const char*, const char *> > my_map = 
  {{"key1", "val1"}, {"key2", "val2"}, };

,然后在需要时在运行时构造一个std::map 。我知道我也可以使用inline而不是constexpr,但是那时我将无法在编译时使用(也许在开发的后期)。但是,这有点不令人满意(因为我不得不在运行时仅为查找构造地图),我想知道:是否有更好的解决方案?

0 个答案:

没有答案