Qt Android:有没有一种方法可以初始化带有初始化列表的std :: map?

时间:2019-12-29 17:27:30

标签: android c++ qt android-ndk initializer-list

我正在用C ++ 14和Qt编写一个跨平台应用程序。在某些头文件中,我定义了const static std::map来保存枚举与字符串或列表之间的关系。在桌面编译器上,代码可以编译并正常工作,在移动编译器上,我会遇到一系列no matching constructor for initialization of 'const std::map<...>'错误。 std::vector的初始化程序列表似乎被接受。代码如下:

static const std::map<enum, std::string> ENUM_TO_STRING = { { VALUE_ENUM, "value" } };

似乎还好。我已经读过有关使用APPLIB = gnulib_static的信息,但这是针对Android Studio的修复程序,对Qt Creator而言毫无意义。运行时初始化会破坏使用静态常量映射的目的,因此我宁愿避免使用它,而且我不得不用这种方式重新填充很多映射。

我必须对地图初始化列表使用其他语法吗?甚至支持此功能吗?如果没有,有没有办法提供?

我正在使用Android ndk版本r19(可能是?),Qt Creator 4.8.1,Qt 5.12.0。

0 个答案:

没有答案