如何确定编译器使用的C ++标准版本?

有时我们需要知道,当前的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

以上是 如何确定编译器使用的C ++标准版本? 的全部内容, 来源链接: utcz.com/z/331436.html

回到顶部