c++ - 尝试分配 std::variant 时出现 VScode C/C++ 扩展错误
问题描述
我正在使用带有Microsoft C/C++ 扩展的 vscode来分析此 C++ 代码:
#include <variant>
using namespace std;
int main()
{
variant<int, double> v;
v = 12; //Marks as error
v = 12.0; //Marks as error
//But compiles without errors.
}
该扩展目前将这些行标记为错误,但仍然可以毫无问题地编译和运行它们。
为了解决这个问题,tasks.json
我添加了这样的参数:
...
"command": "/usr/bin/g++",
"args": [
"--std=c++17",
"-pedantic-errors",
...
...
在扩展设置中,我明确地将 C++ 标准设置为C++17
并重新启动。
但我仍然无法摆脱红色曲线。悬停时,错误显示:
没有运算符 "=" 匹配这些操作数 -- 操作数类型是:std::variant<int, double> = int
我该如何解决?
编辑:在我之前的问题中,vscode 无法编译。现在可以了,这要归功于扩展设置中的编辑。但是,我仍然无法摆脱红色曲线。
解决方案
请参阅https://github.com/microsoft/vscode-cpptools/issues/6623。
它仅在使用 clang(不是 gcc 或 cl.exe)时重现,将您的 compilerPath 更改为 g++ 可能是一种解决方法。
推荐阅读
- java - Convert result from HQL into Object
- javascript - 如果我在 React 中使用 this.props.children,如何传递按钮单击事件
- html - flex-direction:column justify-content not working
- django - 关系“django_session”不存在 - django,heroku
- asp.net-mvc - Log4Net 无法在任何地方找到日志文件
- c++ - 将 Byte[]{LSB-0,MSB-0,LSB-1,MSB-1...LSB-N,MSB-N} 转换为 Int[](int-0,int-1,int-N)
- git - 推送后更新提交消息、作者和提交者
- python - 无法启动 python manager.py runserver
- c++ - c ++析构函数通过单个对象抛出异常
- c# - 如何在 UWP 中执行 MouseEvents?