qq_37440204
MonoKelvin
采纳率63%
2019-12-27 17:37

QT使用std::unordered_map时报错:the code model could not parse an included file, which might lead to incorrect code completion and highlighting

已采纳

编译时报大量的这种错误:


图片说明




已把无关的代码注释省略了:




#ifndef APROCHDATAMODELREGISTRY_H
#define APROCHDATAMODELREGISTRY_H

// #include ...

#include <memory>
#include <utility>
#include <functional>

#include <QString>

// 只要包含这个文件,就会报错,但不包含就无法使用unordered_map
#include <unordered_map>

APROCH_NAMESPACE_BEGIN

class APROCH_EXPORT AprochDataModelRegistry
{
public:
    using RegisteredModelsCategoryMap = std::unordered_map<QString, QString>;

    // ... 

private:
    RegisteredModelsCategoryMap mRegisteredModelsCategory;

    // ... 
};

APROCH_NAMESPACE_END

#endif // APROCHDATAMODELREGISTRY_H

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • qtchen_1988 qtchen_1988 2年前

    图片说明

    这个是c++ 11以后才有的。
    你在你的工程文件(xxx.pro)添加
    CONFIG += c++11
    然后重新编译就可以了

    点赞 评论 复制链接分享