dar*_*une 10 c++ stdmap constexpr c++17
理想情况下,我想写:
constexpr std:map<std::string, std::string> my_map =
{{"key1", "val1"}, {"key2", "val2"}, };
Run Code Online (Sandbox Code Playgroud)
要么
constexpr std:unordered_map<std::string, std::string> my_map =
{{"key1", "val1"}, {"key2", "val2"}, };
Run Code Online (Sandbox Code Playgroud)
但是都不可能(至少在当前语言c ++ 17中是不可能的)
那还有什么选择呢?
例如,我可以做以下事情:
constexpr std::initializer_list< std::pair<const char*, const char *> > my_map =
{{"key1", "val1"}, {"key2", "val2"}, };
Run Code Online (Sandbox Code Playgroud)
然后在运行std::map
时需要时构造一个。我知道我也可以使用inline
代替constexpr
,但是那时我将无法在编译时使用(也许在开发的后期)。但是,这有点不令人满意(因为我不得不在运行时仅出于查找目的构造映射),我想知道:是否有更好的解决方案?
归档时间: |
|
查看次数: |
180 次 |
最近记录: |