Sử dụng macro __cplusplus để kiểm tra phiên bản chuẩn C++ mà compiler đang tuân thủ.
Bảng giá trị __cplusplus
| Chuẩn | Giá trị __cplusplus |
|---|---|
| C++98 | 199711L |
| C++11 | 201103L |
| C++14 | 201402L |
| C++17 | 201703L |
| C++20 | 202002L |
| C++23 | 202302L |
Ví dụ mã nguồn
#include <iostream>
int main() {
if (__cplusplus >= 202002L) std::cout << "C++20 or later\n";
else if (__cplusplus == 201703L) std::cout << "C++17\n";
else if (__cplusplus == 201402L) std::cout << "C++14\n";
else if (__cplusplus == 201103L) std::cout << "C++11\n";
else if (__cplusplus == 199711L) std::cout << "C++98\n";
else std::cout << "Pre-standard C++\n";
std::cout << "Gia tri __cplusplus = " << __cplusplus << "\n";
return 0;
}
Đầu ra mẫu (compiler C++17)
C++17 Gia tri __cplusplus = 201703