我是否正确理解这些是 __cplusplus
的最小值并且 C++98 具有与 C++03 相同的值?
// C++ 98
#define __cplusplus 199711L
// C++ 03
#define __cplusplus 199711L
// C++ 11
#define __cplusplus 201103L
// C++ 14
#define __cplusplus 201402L
// C++ 17
#define __cplusplus 201500L
// C++ 20
#define __cplusplus 201704L
// looks like the format is YEAR*100+something
此外,C++20 标准发布后是否具有官方值(value)?
最佳答案
Also, does C++20 have an official value now that the standard is released?
确实如此:202002L
.这里的格式是日期:YYYYMM(C++20 于 2020 年 2 月正式发布)。 C++17 的值是 201703L,而不是 201500。其余的都是正确的(C++03 没有更改 __cplusplus
宏)。
然而,这个宏太粗略以至于不能普遍使用。实现不只是一次性添加所有功能,它们会随着时间的推移而添加。所以你最好使用feature-test macros来测试你真正需要的东西。
关于c++ - __cplusplus 扩展最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62544756/