From 32c05d4eb6f6564762a8fba83027cbbc3e28ef22 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Wed, 19 Jul 2023 17:17:01 -0700 Subject: [PATCH] add std::endian support if available Signed-off-by: Rosen Penev --- src/image.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/image.cpp b/src/image.cpp index a439ee155d..989c3f8aa2 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -46,6 +46,7 @@ // + standard includes #include +#include #include #include #include @@ -168,7 +169,9 @@ bool Image::isPrintICC(uint16_t type, Exiv2::PrintStructureOption option) { } bool Image::isBigEndianPlatform() { -#ifdef __LITTLE_ENDIAN__ +#ifdef __cpp_lib_endian + return std::endian::native == std::endian::big; +#elif defined(__LITTLE_ENDIAN__) return false; #elif defined(__BIG_ENDIAN__) return true; @@ -188,7 +191,9 @@ bool Image::isBigEndianPlatform() { #endif } bool Image::isLittleEndianPlatform() { -#ifdef __LITTLE_ENDIAN__ +#ifdef __cpp_lib_endian + return std::endian::native == std::endian::little; +#elif defined(__LITTLE_ENDIAN__) return true; #else return !isBigEndianPlatform();