什么是C++ 03宏?

jww*_*jww 0 c c++ macros c++03

我正在尝试使用编译库-std=c++03,但编译失败,因为nullptr_t未定义.

如何使用硬编码宏保证C++ 03而不是C++ 11编译?

提前致谢.

Cas*_*sey 6

标准中唯一的版本检测是宏的值__cplusplus:201103对于C++ 11(ISO/IEC14882-2011§16.8/ 1)和199711C++ 98(ISO/IEC14882-1998§16.8/ 1) .C++ 03显然不值得拥有自己的数字和用途199711(ISO/IEC14882-2003§16.8/ 1).如果这对您来说似乎不适合作为特征检测手段,那么您并不孤单.

在任何情况下,您可能需要查阅相关库的文档,以确定如何为C++ 11之前配置它,如果可能的话.