有时我们需要知道,当前的C ++标准是什么。要获得此类信息,我们可以使用名为__cplusplus的宏。对于不同的标准,其值将如下所示。
| 标准 | __cplusplus输出 |
|---|---|
| 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