XIEITE_COMPILER_TYPE_ /*???*/ , XIEITE_COMPILER_MAJOR_ /*???*/ , XIEITE_COMPILER_MINOR_ /*???*/ , XIEITE_COMPILER_PATCH_ /*???*/ , XIEITE_COMPILER_VER ()
Defined in header <xieite/pp/compiler.hpp> Macros for identifying the current compiler and its version (major, minor, patch). The macros are not mutually exclusive.
Definitions
#typeAppend one of:#define XIEITE_COMPILER_TYPE_ /*???*/ /* boolean integer literal */ #define XIEITE_COMPILER_MAJOR_ /*???*/ /* integer literal */ #define XIEITE_COMPILER_MINOR_ /*???*/ /* integer literal */ #define XIEITE_COMPILER_PATCH_ /*???*/ /* integer literal */
ACK , ADSP , AHCC , ALTIUM_C_TO_HARDWARE , ALTIUM_MICROBLAZE_C , AOCC , ARMCC , AZTEC_C , BCC , BORLAND , C2 , CASTXML , CC65 , CILLY , CIRCLE , CLANG , COMEAU , COMPAQ_C , COMPAQ_CPP , COMPCERT , CONVEX_C , COVERITY_STATIC_ANALYZER , CRAY_C , CRAY_F90 , DIGITAL_MARS , DICE_C , DIGNUS_SYSTEMS_CPP , DJGPP , ECPPS , EDG , EKOPATH , ELLCC , EMSCRIPTEN , F2C , FLANG , FUJITSU_CPP , GCC , GCCXML , GNU_F95 , GREEN_HILLS , HEXAGON , HIPCC , HPUX_C , HPUX_CPP , HSC , IAR , ICC , ICX , IMAGECRAFT_C , KCC , KEIL_C166 , KEIL_C51 , KEIL_CARM , KICKC , LATTICE_C , LCC , LIGHTSPEED_C , LLVM , MCST_LLC , METAWARE_HIGH , METROWERKS_CODEWARRIOR , MICROTEC , MICROWAY_NDP_C , MINGW32 , MINGW_W64 , MIPSPRO , MIRACLE_C , MPW , MSVC , NCC , NORCROFT_C , NVIDIA_HPC , NVCC , NWCC , OCC , OPEN64 , OPENACC , OPENSERVER , ORANGE_C , PACIFIC_C , PALM , PCC , PELLES_C , PGI , PUREC , PRO_C , PW32 , QUICKC , RENESAS , SDCC , SHARC , SNC , SOZOBON , STRATUS_VOS_C , SUNPRO_C , SUNPRO_CPP , SYMANTEC_CPP , TCC , TENDRA , TI_CGT , TI_CL430 , TOPSPEED_C , TURBO , ULTIMATE , USL_C , VBCC , VCM , WASI , WATCOM , WIND_RIVER_DIAB , XC8 , XC16 , XC32 , XC_DSC , XL , ZORTECH_CPP , Z88DK . See example.#ver
Allows up to two additional arguments for the minor and patch versions. Expands to an expression checking whether a compiler is present and the comparison of its version to the provided arguments.#define XIEITE_COMPILER_VER (_type ,_op ,_major ,... /* _minor, _patch */ )/* boolean expression */
Example
Possible output:int main () {std ::println ("Is current compiler GCC > v15? ,{} "XIEITE_COMPILER_VER (GCC, >,15 )); }
[View in Compiler Explorer]Is current compiler GCC > v15? true