How to enable C++17 support in VSCode C++ Extension
There's a posting in their GitHub issue tracker about this: std::string_view intellisense missing (CMake, VC++ 2017).
In another issue, it is said that the extension defaults to C++17, but does not yet support all of C++17 features: Setting C++ standard.
This is confirmed by c_cpp_properties.json Reference Guide, where an option is listed cppStandard
which defaults to C++17. (To edit this file, press Ctrl + Shift + P and type in C/CPP: Edit Configurations
).
It appears, then, they just don't have full support yet.
This has become much easier now. Search for cppstandard
in your vs code extension settings and choose the version of C++ you want the extension to use from the drop down.
In order to make sure your debugger is using the same version, make sure you have something like this for your tasks.json
, where the important lines are the --std
and the line after that defines the version.
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"--std",
"c++17",
"-I",
"${fileDirname}",
"-g",
"${fileDirname}/*.cpp",
"-o",
"${workspaceFolder}/out/${fileBasenameNoExtension}.o"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
Just an updated. I got this issue as well.
I solve it by adding c_cpp_properties.json
Ctrl + Shift + P then select
C/C++:Edit Configurations (JSON)
Adjust the content for
cStandard
andcppStandard
:"cStandard": "gnu17", "cppStandard": "gnu++17",