如何确定编译器使用的 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

更新日期:30-7-2019

4K+ 次浏览

开启你的 职业

完成课程以获得认证

开始
广告