与问题How do I check for C++11 support?和What is the value of __cplusplus for C++17?相关
如何查询编译器是否可以处理/是否设置为使用C++20?我知道原则上可以通过以下方式查询C++版本:
#if __cplusplus > ???
// C++20 code here
#endif对于C++20,???应该是什么?
发布于 2018-11-30 20:48:25
正如您在[cpp.predefined]p1.1中看到的那样,C++20的值为202002L
__cplusplus
整型文字202002L。注意:此国际标准的未来版本将用更大的值替换此宏的值。-结束注释
因此,对于已经实现新标准的编译器,您可以通过以下方式进行检查:
#if __cplusplus >= 202002L
// C++20 (and later) code
#endif这是目前为止对编译器的支持:
/Zc:__cplusplus)0) >= No (version >= >= 2021定义了202000L;请注意
发布于 2018-11-30 20:46:54
由于C++20仍在开发中,目前还没有已知的__cplusplus版本。只有C++20的草案。
latest draft N4788仍然包含:
__cplusplus
整型文字201703L。注意:此国际标准的未来版本将用更大的值替换此宏的值。-end笔记
至于检查,我会使用@gsamaras回答。
https://stackoverflow.com/questions/53557649
复制相似问题