#ifdef __linux__
#if defined(__x86_64__) || defined(_M_X64)
# error "DETECTED: linux64"
#elif defined(i386) || defined(__i386__) || defined(__i386) || defined(_M_IX86)
# error "DETECTED: linux32"
#elif defined(__aarch64__) || defined(_M_ARM64)
# error "DETECTED: linuxaarch64"
#elif __riscv
# if __riscv_xlen == 64
# error "DETECTED: linuxriscv64"
# else
# error "DETECTED: unsupported"
# endif
#else
# error "DETECTED: unsupported"
#endif
#elif defined(__APPLE__)
#if defined(__x86_64__) || defined(_M_X64)
# error "DETECTED: macosx64"
#elif defined(i386) || defined(__i386__) || defined(__i386) || defined(_M_IX86)
# error "DETECTED: macosx32"
#elif defined(__aarch64__) || defined(_M_ARM64)
# error "DETECTED: macosxaarch64"
#endif
#elif WIN32
#if defined(__x86_64__) || defined(_M_X64)
# error "DETECTED: win64"
#elif defined(i386) || defined(__i386__) || defined(__i386) || defined(_M_IX86)
# error "DETECTED: win32"
#elif defined(__aarch64__) || defined(_M_ARM64)
# error "DETECTED: winaarch64"
#endif
#else
# error "DETECTED: unsupported"
#endif