Seb*_*n.M 5 qt qt-creator c++17
我在 Qt Creator 中使用 clang 代码模型。它总是工作得很好,包括我重写从模板基类派生的类中的方法以及使用 C++17 功能时的情况。然后我切换到 Qt Creator 4.5,突然收到错误“只有虚拟成员函数可以标记为‘覆盖’”,即使代码没有改变。
现在我尝试返回 Qt Creator 4.4 并删除所有设置,但它仍然是相同的。
最重要的是,当我打开一个新文件时,我收到警告“代码模型无法解析包含的文件,这可能会导致代码完成和突出显示缓慢或不正确。type_traits:3083:7:错误:预期'(' 用于函数式转换或类型构造”,我收到错误“错误:命名空间 'std' 中没有名为 '可选' 的类型。
这仅影响代码模型,即。Qt Creator 在 IDE 中向我显示警告和错误。编译仍然可以正常工作。
这是我的代码模型配置:
-Weverything -Wno-c++98-compat -Wno-c++98-compat-迂腐 -Wno-unused-macros -Wno-newline-eof -Wno-exit-time-destructors -Wno-global-constructors -Wno -gnu-zero-variadic-macro-arguments -Wno-documentation -Wno-shadow -Wno-missing-prototypes -Wno-c++11-extensions -std=c++1z
我尝试了使用和不使用设置std,但这并没有改变任何东西。
这是一个导致“错误:使用未声明的标识符‘std’”、“错误:预期‘(’用于函数样式转换或类型构造”和“错误:使用未声明的标识符‘x’”的最小示例:
#pragma once
#include <optional>
class Test {
public:
void bar() {
std::optional<int> x;
}
};
Run Code Online (Sandbox Code Playgroud)
有什么线索可能发生了变化或者我可能缺少哪些设置吗?