บางครั้งเราต้องรู้ว่า มาตรฐาน 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