首页 >后端开发 >C++ >尽管支持 C 11,为什么 Visual Studio 2012 的 __cplusplus 宏仍然指示 C 98 兼容性?

尽管支持 C 11,为什么 Visual Studio 2012 的 __cplusplus 宏仍然指示 C 98 兼容性?

DDD
DDD原创
2024-11-05 04:36:02661浏览

Why Does Visual Studio 2012's __cplusplus Macro Still Indicate C  98 Compatibility Despite C  11 Support?

Visual Studio 2012 __cplusplus 及其与 C 11 支持的差异

尽管 Visual Studio 2012 宣称支持 C 11,但仍注意到存在不一致之处关于 __cplusplus 宏。它没有反映 201103L 的预期值,而是继续在 C 项目中定义为 199711L。

可能的解释

__cplusplus 宏是一个预定义宏,它提供编译器使用的 C 标准的版本号。在这种特定情况下,199711L 的值对应于早于 C 11 的“旧”C 标准。

对 C 11 标头的影响

即使 C 11标头包含在项目中,__cplusplus 仍然被错误地定义为 199711L。这种不一致可能会导致代码与 C 11 标准之间的潜在兼容性问题。

已知错误

该问题已被 Microsoft 确认,并且已发布错误报告已归档(预定义宏__cplusplus的值仍然是199711L)。因此,预计会在未来的更新中得到解决。

以上是尽管支持 C 11,为什么 Visual Studio 2012 的 __cplusplus 宏仍然指示 C 98 兼容性?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn