C++ KDevelop语义分析器对std::variant越来越疯狂。如何处理? 在使用KDebug时,我得到了一些语义分析器疯狂的代码:它大多认为完整的标题在语义上是错误的,到处都是丑陋的红色突显。

C++ KDevelop语义分析器对std::variant越来越疯狂。如何处理? 在使用KDebug时,我得到了一些语义分析器疯狂的代码:它大多认为完整的标题在语义上是错误的,到处都是丑陋的红色突显。,c++,kdevelop,C++,Kdevelop,我最大限度地简化了代码,结果如下: 在这种情况下,对于测试MyClass.hpp: #pragma once #include <memory> #include <variant> template <typename Real, typename Index> using Io = std::variant<Real, Index>; template <typename Real, typename Index> str

我最大限度地简化了代码,结果如下:

在这种情况下,对于测试MyClass.hpp

#pragma once

#include <memory>
#include <variant>

template <typename Real, typename Index>
using Io = std::variant<Real, Index>;


template <typename Real, typename Index>
struct MyClass
{
    std::shared_ptr<Io<Real, Index>> ioPtr;
};
#pragma一次
#包括
#包括
模板
使用Io=std::variant;
模板
结构MyClass
{
std::共享的ptr ioPtr;
};
我可以构建这个代码(只需在另一个文件中添加一个main函数),并将其视为有效代码。

KDevelop版本是当前的Debian版本:5.3.1(不幸不是最新版本)

问题: 为什么会这样?
我能做些什么来避免这种情况吗?(不更改代码)

在KDevelop中,需要设置解析器语言版本。这是在项目->开放配置->语言支持-> C++解析器中完成的。然后您可以选择C++17作为解析器的语言版本