บางครั้งเราต้องการทราบว่ามาตรฐาน C++ ปัจจุบันเป็นอะไร เพื่อรับข้อมูลประเภทนี้ เราสามารถใช้ Macro ที่ชื่อว่า __cplusplus สำหรับมาตรฐานต่างๆ ค่าของ Macro นี้จะเป็นดังนี้
| มาตรฐาน (Standard) | ค่า __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