如何確定編譯器使用的 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+ 次瀏覽

開啟你的 職業

完成課程以獲得認證

開始
廣告