MonoKelvin 2019-12-27 17:37 采纳率: 40%
浏览 1179
已采纳

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 2019-12-27 17:55
    关注

    图片说明

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?