我正在尝试在 VS Code 中使用 C++20 和 Code Runner 扩展,它允许我使用 ctrl+alt+n 运行代码。
我已经通过 MSYS2 安装程序安装了 MinGW64。 我的编译器版本是 12.0.2.
cppStandard
设置为 c++20
."C_Cpp.default.cppStandard": "c++20"
."-std=c++20"
添加到 args
字段。当我在我的 C++ 文件中键入
__cplusplus
并将鼠标悬停在它上面时,悬停信息显示“# define __cplusplus 202002L
”。
但是 Code Runner 扩展仍然没有使用 C++20。为什么?我怎样才能让它使用 C++20?
code-runner.executorMap
设置以在其中添加 C++ 标准选择标志。也许是这样的:
"code-runner.executorMap": {
"cpp": "cd $dir && g++ -std=c++20 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
}
您在悬停信息中看到“
# define __cplusplus 202002L
”,因为它由 vscode-cpptools 扩展控制 - Code Runner 扩展的一个单独扩展,它读取您的 c_cpp_properties 相关设置。
tasks.json 是一个 VS 代码功能,我假设您正在使用它来定义构建任务。我认为通常没有太多理由在 tasks.json 中同时拥有构建任务以及使用 Code Runner,因为 Code Runner 将处理构建和运行(但它实际上只适用于极其简单的用例)。
松散相关的问题单:更新 code-runner.executorMap 的默认设置以支持 c++11 或更高版本#397.