如何确定编译器使用的 C++ 标准版本?
有时我们需要知道当前 C++ 标准是什么。要获取此类信息,我们可以使用名为 __cplusplus 的宏。对于不同的标准,此值将如下所示。
标准 | __cplusplus 输出 |
---|---|
C++ pre C++98 | 1 |
C++98 | 199711L |
C++98 + TR1 | 无法检查,这将标记为 C++98 |
C++11 | 201103L |
C++14 | 201402L |
C++17 | 201703L |
示例
#include<iostream> int main() { if (__cplusplus == 201703L) std::cout << "C++17" << endl; else if (__cplusplus == 201402L) std::cout << "C++14" << endl; else if (__cplusplus == 201103L) std::cout << "C++11" << endl; else if (__cplusplus == 199711L) std::cout << "C++98" << endl; else std::cout << "pre-standard C++" << endl; }
输出
C++98
广告