我是一个初学者,在 macOS 上使用 VSCode。
尝试使用方括号进行迭代,这需要 C++17:
for (auto [document_id, relevance] : documents) {
cout << "{ document_id = "s << document_id << ", relevance = "s << relevance << " }"s
<< endl;
}
当尝试终端 - >运行构建任务时,-std=gnu++14标志出现在所有其他标志之前,即使-std=gnu++17在tasks.json中指定
这是我的tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: clang++",
"command": "/usr/bin/clang++",
"args": [
"-std=gnu++17",
"-stdlib=libc++",
"-fcolor-diagnostics",
"-fansi-escape-codes",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "/usr/bin/clang++"
}
]
}
这是输出:
* Executing task: C/C++: clang++
Starting build...
/usr/bin/clang++ -std=gnu++14 -std=gnu++17 -stdlib=libc++ -fcolor-diagnostics -fansi-escape-codes -g /Users/user/Documents/С++/000test/main.cpp -o /Users/user/Documents/С++/000test/main
Build finished successfully.
* Terminal will be reused by tasks, press any key to close it.
可能是什么问题呢?
我也尝试在C/C++扩展中将C++版本更改为17,但没有成功。
当与"-std=gnu++17", "-stdlib=libc++"
在任务 json 中没有出现警告,但第二个 -std 标志是否会覆盖第一个?
我也发现了这个topic,但我什至在 vscode 中没有 CMake 扩展。