XTE_COMPILER

Defined in header <xte/preproc/compiler.hpp>

Macros for detecting the current compiler. Definitions are compiler-dependent and not mutually exclusive.

Replace NAME with one of: 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, EDG, EKOPATH, ELLCC, 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, WATCOM, WIND_RIVER_DIAB, XC8, XC16, XC32, XC_DSC, XL, ZORTECH_CPP, Z88DK.


Definitions

#compiler
#define XTE_COMPILER_NAME /* boolean integer literal */
Detects the presence of an compiler.

#major
#define XTE_COMPILER_NAME_MAJOR /* integer literal */
Detects the major version of a compiler.

#minor
#define XTE_COMPILER_NAME_MINOR /* integer literal */
Detects the minor version of a compiler.

#patch
#define XTE_COMPILER_NAME_PATCH /* integer literal */
Detects the patch version of a compiler.

#version
#define XTE_COMPILER(NAME, OP, MAJOR, /* MINOR, PATCH */...) /* boolean expression */
OP must be <, <=, >, >=, ==, or !=. Allows up to two additional arguments for the minor and patch versions. Expands to an expression comparing a compiler's version to the provided arguments.



Example

#if XTE_COMPILER(GCC, >=, 16,1)
	yup
#else
	nop
#endif
Possible preprocessor output:
yup
[View in Compiler Explorer]