如何在vscode(MAC)上启用c ++ 17

时间:2019-12-01 16:48:24

标签: visual-studio-code c++17

我目前在Mac上使用vscode。

在.cpp文件上使用对时,出现错误消息; 错误:连续的直角之间需要空格       括号(使用'>>')

在执行g ++ -std = c ++ 17 -g filename.cpp时,永远不会出现错误。但是使用g ++ filename.cpp不能使用此模板。

我什至无法尝试元组,因此在处理它时遇到了麻烦。

我当前的c_cpp_properties.json就是这样;

enter image description here

和我的launch.json是这样的: enter image description here

最后,我的tasks.json是这样的: enter image description here

如何在没有这些警告的情况下使用g ++ filename.cpp?

3 个答案:

答案 0 :(得分:0)

在C ++ 98/03中,使用两个连续的>关闭嵌套的模板声明是不合法的,但在C ++ 11(及更高版本)中是合法的。

您的命令g++ filename.cpp(默认)默认为C ++ 98,而当您尝试g++ -std=c++17 -g filename.cpp时,则明确表示您要针对C ++ 17进行编译。

答案 1 :(得分:0)

单击右下角显示C ++的按钮(vscode会自动检测文件类型,否则您必须选择文件的语言模式),然后选择配置基于语言的“ C ++”设置...-它将打开设置。 json文件

将字段“ C_Cpp.default.cppStandard”更改为“ c ++ 17”

答案 2 :(得分:0)

为了在命令行上编译,我使用了以下命令 - 请注意这里我使用的是 Apple clang 版本 12.0.0

clang some_file.cpp -std=c++11 -lstdc++

在我的 vscode 编辑器中,我没有添加任何更改,并且在连续的“>”之间不需要任何空格。