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中文网其他相关文章!