Windows下GCC11.2使用std::numbers提示未声明错误该如何解决?
GCC 11.2默认编译时未启用C20标准,std::numbers属于C20新增的数学库特性,必须显式指定编译标准才能正常识别,可按以下步骤配置:
1. 手动编译验证
在命令行执行编译命令时添加-std=c++20参数即可正常编译:g++ main.cpp -o main -std=c++20
如需使用GNU扩展特性,可将参数替换为-std=gnu++20。
2. VSCode 永久配置
根据你使用的执行工具选择对应配置:
- 若使用Code Runner插件运行代码:
打开VSCode设置,搜索Code-runner: Executor Map,选择在settings.json中编辑,找到cpp对应的配置项,修改为:"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -std=c++20 && $dir$fileNameWithoutExt", - 若使用C/C++扩展的默认编译/调试功能:
打开项目.vscode目录下的tasks.json文件,在args参数列表中添加-std=c++20,示例配置:"args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe", "-std=c++20" ]
3. 编辑器智能提示修复
如果配置后VSCode编辑器内仍然提示std::numbers未识别,修改.vscode目录下的c_cpp_properties.json,将cppStandard字段的值改为c++20即可。
内容的提问来源于stack exchange,提问作者SoaAlex
相关产品推荐
相关产品推荐

