Computer >> Máy Tính >  >> Lập trình >> C ++

Làm thế nào để xác định phiên bản của tiêu chuẩn C ++ được trình biên dịch sử dụng?

Đôi khi chúng ta cần biết rằng, tiêu chuẩn C ++ hiện tại là gì. Để có được loại thông tin này, chúng ta có thể sử dụng macro có tên __cplusplus. Đối với các tiêu chuẩn khác nhau, giá trị của điều này sẽ như bên dưới.

Chuẩn __ cplusplus đầu ra
C ++ trước C ++ 98
1
C ++ 98
199711L
C ++ 98 + TR1
Không thể kiểm tra điều này, điều này sẽ được đánh dấu là C ++ 98
C ++ 11
201103L
C ++ 14
201402L
C ++ 17
201703L

Ví dụ

#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;
}

Đầu ra

C++98