問題描述
今天在寫 C++ 代碼的時候用上 C++11 的特性,然后發現 VSCode 雖然可以編譯通過,但是會在相應位置報紅,如下圖所示。
並且在編譯的時候遇到如下警告:
C1.cpp:62:14: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
for (auto a : vec)
1
2
問題原因:
VSCode 根據編譯參數,無法檢測 C++11 相關語法,因此出現報紅和 warning 等現象。
解決方法
可以按照如下圖步驟執行:
點擊下載的 C/C++ 插件中的小齒輪
選擇 Extension Setting 選項
在 Compiler Args 的選項中,點擊 Edit in setting.json
最后在彈出的 setting.json 文件中加入如下編譯參數:
{
"C_Cpp.default.compilerArgs": [
"-g",
"${file}",
"-std=c++11",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
]
}