Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จะตรวจสอบเวอร์ชันของมาตรฐาน C ++ ที่คอมไพเลอร์ใช้ได้อย่างไร?


บางครั้งเราต้องรู้ว่า มาตรฐาน C++ ปัจจุบันคืออะไร เพื่อให้ได้ข้อมูลประเภทนี้ เราสามารถใช้มาโครที่เรียกว่า __cplusplus สำหรับมาตรฐานที่แตกต่างกัน ค่าของสิ่งนี้จะเป็นดังนี้

มาตรฐาน เอาต์พุต cplusplus
C++ ก่อน 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