最新版VS2022对C++22标准的支持情况及编译问题咨询
VS2022 C++标准支持问题解答
你提到的C22是标准正式发布前的草案代称,当前正式发布的最新C标准为C23,你代码中用到的std::integral是C20版本引入的类型约束概念。
最新的VS2022(17.4版本及以后)已经完整支持C20全部特性,也覆盖了大部分C23特性,你遇到的编译报错和标准支持度无关,是编译参数配置问题。
报错原因:MSVC编译器默认使用C14标准进行编译,不会识别C20才新增的
std::integral定义。而GCC 11.2默认启用了部分C++20特性,所以可以直接编译通过。
解决方案
- 打开VS项目的属性配置页
- 依次进入「配置属性」→「C/C++」→「语言」分类
- 将「C++ 语言标准」选项修改为
ISO C++20 标准(/std:c++20),如果需要使用更新的C++23特性可以选择ISO C++ 最新草案标准(/std:c++latest) - 保存配置后重新编译即可解决该报错
内容的提问来源于stack exchange,提问作者EmilyC137
相关产品推荐
相关产品推荐

