Bildiğiniz gibi C++ üzerinde bazı versiyonlar bazı standartlar vardır. Bunlardan en çok kullanılanları C++11, C++14, C++17 ve yakın zamanda çıkmış olan C++20. Uzun soluklu projeler için veya spesifik olarak çalışılan alanlar için bu versiyonları bilmek, bu versiyonlara hakim olmak ve bu bilgi dahilinde kod geliştirmek oldukça önemlidir.
Burada sürüm numaralarından bahsederek bunları bilmeniz gerekiyor demek kolay gibi görünse de her sürümün imkanlarına ve farklılıklarına hakim olmak imkansıza yakın diyebiliriz ama bu demek değildir ki biraz da olsa hakim olamayız.
Bu yazımızda yazmış olduğumuz C++ kodu için derleyicimizin hangi standartları kullandığını nasıl öğrenebiliriz onu göreceğiz. Bu biraz karışık gibi gelse de kullandığımız derleyici hangi sürümü kullandığını bize bir makro ile söylüyor ve 1-2 satır kodla çok kolay bir şekilde öğrenebiliyoruz.
Gelelim bu makronun dönmüş olduğu bazı değerlere,
- C++11 için __cplusplus bize 201103L,
- C++14 için __cplusplus bize 201402L,
- C++17 için __cplusplus bize 201703L,
- C++20 için __cplusplus bize 202002L döner.
Bunu kod üzerinde nasıl yazarız bir de onu görelim.
#include<iostream> int main() { if (__cplusplus == 202002L) std::cout << "C++20\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 std::cout << "pre-standard C++\n"; }
Bu kod sayesinde derleyicimizin kullanmış olduğu standartı ekrana yazdırabiliriz.
Artık yazmış olduğumuz kodun hangi standartlara uygun olduğunu kolay bir şekilde öğrenebiliriz. Bu bilgi küçük gözükse de ne kadar önemli olduğunu proje geliştirdikçe anlayacaksınız.