Macro Değeri
Açıklaması şöyle.
Eğer portable olmasını beklemeden C++ derleyicisinin sürümünü anlamak istersek şöyle yaparız.
Şöyle yaparız
Şöyle yaparız.
Açıklaması şöyle.
According to the standard, the __cplusplus macro must be defined, the exact definition depends on the C++ standard being used but it will not be zero.Macronun değerini görmek için şöyle yaparız.
std::cout << __cplusplus << std::endl;
Şöyle yaparız.std::cout << (unsigned int)__cplusplus << std::endl;
Çıktı olarak şunun gibi bir değer alırız.201402
Ancak macro, her derleyici tarafından farklı bir anlam için kullanılmış. C++ derleyicisinin sürümünü anlamak için kullanıyorsak portable kod beklememek lazım. Örneğin Visual Studio 2012 macronun değerini halen 199711L olarak gösteriyor.Eğer portable olmasını beklemeden C++ derleyicisinin sürümünü anlamak istersek şöyle yaparız.
#if __cplusplus > 201100L
# define MYNULL nullptr
#else
# define MYNULL NULL
#endif
Şöyle yaparız.#if __cplusplus >= 201402L
[[deprecated]]
#endif
ÖrnekŞöyle yaparız
#ifdef __cplusplus
extern "C" {...}
#endif
ÖrnekŞöyle yaparız.
#if __cplusplus < 201103L
#error This source must be compiled as C++11 or later
#endif
Hiç yorum yok:
Yorum Gönder