“Qt Creator clang代码模型”;无法分析包含的文件";派生模板类中的警告和错误

“Qt Creator clang代码模型”;无法分析包含的文件";派生模板类中的警告和错误,qt,qt-creator,c++17,Qt,Qt Creator,C++17,我在Qt Creator中使用了clang代码模型。它总是工作得很好,包括我重写从模板基类派生的类中的方法以及使用C++17功能时的情况。然后我切换到QtCreator4.5,突然出现错误“只有虚拟成员函数可以标记为‘override’”,即使代码没有更改 现在我试着回到Qt Creator 4.4并删除所有设置,但仍然是一样的 最重要的是,当我打开一个新文件时,我得到警告“代码模型无法解析包含的文件,这可能导致代码完成和突出显示的速度慢或不正确。例如,键入_traits:3083:7:erro

我在Qt Creator中使用了clang代码模型。它总是工作得很好,包括我重写从模板基类派生的类中的方法以及使用C++17功能时的情况。然后我切换到QtCreator4.5,突然出现错误“只有虚拟成员函数可以标记为‘override’”,即使代码没有更改

现在我试着回到Qt Creator 4.4并删除所有设置,但仍然是一样的

最重要的是,当我打开一个新文件时,我得到警告“代码模型无法解析包含的文件,这可能导致代码完成和突出显示的速度慢或不正确。例如,键入_traits:3083:7:error:expected'('用于函数样式转换或类型构造),我得到了错误错误:命名空间“std”中没有名为“optional”的类型

这只会影响代码模型,即Qt Creator在IDE中显示的警告和错误。编译仍然可以正常工作

以下是我对代码模型的配置:

-Weverything-Wno-c++98 compat-Wno-c++98 compat pedantic-Wno未使用的宏-Wno换行eof-Wno退出时间析构函数-Wno全局构造函数-Wno gnu零变量宏参数-Wno文档-Wno阴影-Wno缺少原型-Wno-c++11扩展-std=c++1z

我试过了,有设置和没有设置
std
,但都没有改变任何事情

以下是导致“错误:使用未声明的标识符'std'”、错误:预期的'('用于函数样式转换或类型构造)和“错误:使用未声明的标识符'x'”的最小示例:

#pragma一次
#包括
课堂测试{
公众:
空条(){
std::可选x;
}
};

任何可能已经更改的内容或我可能缺少的设置的线索?

这似乎是Qt Creator的一个问题。它已在版本4.6中得到解决,该版本使用了较新版本的clang。

您使用的是哪种编译器?我们使用GCC 7.2。我刚刚编译了Qt Creator,链接到clang 5.0.1。这解决了伪错误问题。但是,我仍然收到警告“代码模型无法解析包含的文件,这可能导致代码完成和突出显示缓慢或不正确,例如。type_traits:3083:7:error:expected'('用于函数样式转换或类型构造”我使用的是osx和xcode,即使xcode更新附带了最新的LLVM和gcc,我也没有标题。所以帮不了什么忙。事实上,C++17的许多功能尚未随所有编译器一起提供。仅供参考,最先进的编译器离这些LLVM和MSVC++还有多远
#pragma once

#include <optional>

class Test {
public:
    void bar() {
        std::optional<int> x;
    }
};