diff options
-rw-r--r-- | common/endiantest.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/common/endiantest.h b/common/endiantest.h index 0a20eb91..893653bd 100644 --- a/common/endiantest.h +++ b/common/endiantest.h @@ -4,11 +4,12 @@ #if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) #define IS_LITTLE_ENDIAN (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) #else -static const union { - unsigned int u; - unsigned char b[sizeof(unsigned int)]; -} EndianTest = { 1 }; -#define IS_LITTLE_ENDIAN (EndianTest.b[0] == 1) +constexpr inline bool EndianTest() noexcept +{ + constexpr int test_val{1}; + return static_cast<const char&>(test_val); +} +#define IS_LITTLE_ENDIAN (EndianTest()) #endif #endif /* AL_ENDIANTEST_H */ |