解决在vsode中使用C++17遇到的问题
通过 gcc -v 检查 gcc 的版本,要想 vscode 完全使用 C++17 的功能,gcc 的版本至少 gcc7 才行。然而,gcc11 以上的版本才会默认开启 C++17,所以我们需要配置编译器,让编译器用C++17的语法规则编译我们的代码。
vscod本身不是编译器,需要添加配置文件才具备编译 C++ 代码的功能。具体怎么添加配置和设置文件,网上有很多,这里不做介绍。找到配置文件 tasks.json , 在 “args” 参数选项里面添加 -std=c++17 , 这里缺省了这个参数,默认用的是c++14的语法规则。
到这里,只是把编译器的编译语法改成了 C++17。vscode里面含有 C++ 语法的代码块还是会报语法错误。尽管如此,直接编译运行是可以正常看到结果的。不正常的是,vscode 的默认语法检查规则还是 C++14。还需要把语法检查规则改成 C++17 的才行。
同时按住 shift + Ctrl + p 出现搜索框,在搜索框中输入 C/C++, 选择 “编辑配置文件(JSON)” 下面也有对应的英文版的显示。按下图设置成 “cStandard”: “gnu17”, “cppStandard”: “gnu++17”, 改完后保存,回到 C++17 代码处,错误提示消失。如果想改回 C++14 ,把相应地方的 17 改成 14 就可以了。