XIEITE_ARCH_TYPE_/*???*/, XIEITE_ARCH_MAJOR_/*???*/, XIEITE_ARCH_MINOR_/*???*/, XIEITE_ARCH_PATCH_/*???*/, XIEITE_ARCH_VER()

Defined in header <xieite/pp/arch.hpp>

Macros for identifying the current computer architecture and its version (major, minor, patch). The macros are not mutually exclusive.


Definitions

#type
#define XIEITE_ARCH_TYPE_/*???*/ /* boolean integer literal */
#define XIEITE_ARCH_MAJOR_/*???*/ /* integer literal */
#define XIEITE_ARCH_MINOR_/*???*/ /* integer literal */
#define XIEITE_ARCH_PATCH_/*???*/ /* integer literal */
Append one of: AARCH32, AARCH64, ALPHA, BLACKFIN, CONVEX, CRAY, CRAY_T3D, CRAY_T3E, CSKY, EPIPHANY, ELBRUS_2000, FR30, HEXAGON, HP_800, HP_9000, IA64, IBM_SYSTEM_32, IBM_SYSTEM_370, IBM_SYSTEM_390, IBM_Z, LOONGARCH, M_CORE, M32R, MIPS, MMIX, MN103, MOTOROLA_68000, MOXIE, NDS32, NEC_SX_AURORA_TSUBASA, NIOS_II, OR1K, PA_RISC, PDP_11, PNACL, POWERPC, PTX, PYRAMID_9810, RISC_V, RS_6000, SPARC, SUPERH, TAHOE, TMS320, TMS470, V850, VAX, X80, X86_32, X86_64, XENON, XSTORMY16, XTENSA. See example.

#ver
#define XIEITE_ARCH_VER(_type, _cmp, _major, .../* _minor, _patch */) /* boolean expression */
Allows up to two additional arguments for the minor and patch versions. Expands to an expression checking whether an architecture is present and the comparison of its version to the provided arguments.


Example

int main() {
	std::println("Is target architecture PowerPC > v600? {}", XIEITE_ARCH_VER(POWERPC, >, 600));
}
Possible output:
Is target architecture PowerPC > v600? false
[View in Compiler Explorer]