diff --git a/src/common/util/ities.h b/src/common/util/ities.h index 95db65ba..fc7b512c 100644 --- a/src/common/util/ities.h +++ b/src/common/util/ities.h @@ -31,6 +31,9 @@ #include #include #include +#if __cplusplus >= 202002L +#include +#endif #if defined(__GNUC__) #ifndef LIKELY @@ -570,7 +573,20 @@ inline file_type_e detect_file_type(const std::string& path) { return file_type_e::ZSTD; return file_type_e::PLAIN; } - +namespace endian { +constexpr bool little = +#if __cplusplus >= 202002L + std::endian::native == std::endian::little; +#elif defined(_WIN32) + true; +#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + true; +#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) + false; +#else +#error "Unable to determine endianness" +#endif +} // namespace endian } // namespace util /** @} */ #endif /* _UTIL_ITIES_H_ */