XIEITE_PLATFORM_TYPE_ /*???*/
, XIEITE_PLATFORM_MAJOR_ /*???*/
, XIEITE_PLATFORM_MINOR_ /*???*/
, XIEITE_PLATFORM_PATCH_ /*???*/
, XIEITE_PLATFORM_VER ()
Defined in header <xieite/pp/platform.hpp>
Macros for identifying the current platform or operating system and its version (major, minor, patch).
The macros are not mutually exclusive due to some being related to others (e.g. an Android platform is also a Linux platform).
Definitions
#typeAppend one of:#define XIEITE_PLATFORM_TYPE_ /*???*/ /* boolean integer literal */ #define XIEITE_PLATFORM_MAJOR_ /*???*/ /* integer literal */ #define XIEITE_PLATFORM_MINOR_ /*???*/ /* integer literal */ #define XIEITE_PLATFORM_PATCH_ /*???*/ /* integer literal */
AEGIS
, AIX
, AKAROS
, AMIGAOS
, AMIGAOS_POWERUP
, AMIGAOS_WARPOS
, AMIX
, ANDROID
, APPLE_II
, APPLE_IIE
, AROS
, ASMJS
, ATARI
, ATARI_2600
, ATARI_5200
, ATARI_LYNX
, ATARI_XL
, BADA
, BEOS
, BLUE_GENE
, BLUE_GENE_Q
, BRIDGE_OS
, BSD
, BSD_OS
, BSDI
, CLOUDABI
, CMB
, CMB_500
, CMB_600
, COMMANDER_X16
, COMMODORE_16
, COMMODORE_64
, COMMODORE_128
, COMMODORE_PLUS_4
, COMMODORE_VIC20
, CONVEXOS
, CPM
, CYGWIN
, DC_OSX
, DG_UX
, DOMAIN_OS
, DRAGONFLY_BSD
, DRIVERKIT
, DYNIX
, ECOS
, EMX
, EPOC32_MARM
, EPOC32_WINS
, FREEBSD
, FREERTOS
, FUCHSIA
, GEOS
, GEOS_APPLE
, GEOS_CMB
, GNU_HURD
, GNU_KFREEBSD
, GNU_LINUX
, GP32
, HAIKU
, HI_UX
, HI_UX_MPP
, HP_UX
, ILLUMOS
, INTEGRITY
, INTERIX
, IOS
, IOS_SIMULATOR
, IRIX
, KALLISTI
, LINUX
, LUNIX
, LYNXOS
, MACCATALYST
, MACINTOSH
, MACINTOSH_DYLD
, MIDNIGHTBSD
, MINGW32
, MINGW64
, MINIX
, MINT
, MORPHOS
, MP_RAS
, MPE_IX
, MS_DOS
, NACL
, NETBSD
, NETWARE
, NES
, NEXT
, NINTENDO_3DS
, NINTENDO_64
, NINTENDO_DS
, NINTENDO_GAMECUBE
, NINTENDO_SWITCH
, NINTENDO_WII
, NONSTOP
, NUCLEUS_RTOS
, NUTTX
, OHIO_SCIENTIFIC_CHALLENGER_1P
, OHOS
, OPENBSD
, OPENSERVER
, ORIC_ATMOS
, OS_2
, OS_400
, OS_9
, OSE
, PALM_OS
, PDOS
, PET
, PHOENIX
, PLAN_9
, PNACL
, PPCC
, PSOS
, QNX
, RISCOS
, RTEMS
, RTTHREAD
, SEGA_DREAMCAST
, SIM6502
, SIM65C02
, SINIX
, SKYOS
, SOLARIS
, SUNOS
, SONY_PS
, SONY_PS2
, SONY_PS3
, SONY_PS4
, SONY_PS5
, SONY_PSP
, SONY_VITA
, SORTIX
, SUPERVISION
, SYGWIN
, SYLLABLE
, SYM1
, SYMBIAN
, SYSTEM_V
, SWLINUX
, TELESTRAT
, THREADX
, TRU64
, TV_OS
, UC_OS_II
, UCLINUX
, ULTRIX
, UNICOS
, UNICOS_MP
, UNIX
, UNIX_SV
, UNIXWARE
, UTS
, UWIN
, VMS
, VOS
, VXWORKS
, VISION_OS
, WATCH_OS
, WINDOWS
, WINDOWS_CE
, WINDOWS_DESKTOP
, WINDOWS_GDK
, WINDOWS_NT
, WIND_U
, XBOX
, XBOX_360
, XBOX_ONE
, XBOX_SERIES
, XENIX
, Z
, ZEPHYR
, ZETA
. See example.#ver
Allows up to two additional arguments for the minor and patch versions. Expands to an expression checking whether a platform is present and the comparison of its version to the provided arguments.#define XIEITE_PLATFORM_VER (_type ,_cmp ,_major ,... /* _minor, _patch */ )/* boolean expression */
Example
Possible output:int main () {std ::println ("Is target platform Linux? ,{} "XIEITE_PLATFORM_TYPE_LINUX ); }
[View in Compiler Explorer]Is target platform Linux? 1