diff --git a/Utilities/BEType.h b/Utilities/BEType.h index 1413ddd7d6..bf08a7f090 100644 --- a/Utilities/BEType.h +++ b/Utilities/BEType.h @@ -769,7 +769,7 @@ template struct is_be_t> : public std::integral_constant struct to_be { - using type = std::conditional_t::value || std::is_enum::value, be_t, T>; + using type = std::conditional_t::value || std::is_enum::value || std::is_same::value, be_t, T>; }; // be_t if possible, T otherwise @@ -787,7 +787,6 @@ template struct to_be using type = volatile to_be_t>; }; -template<> struct to_be { using type = u128; }; template<> struct to_be { using type = void; }; template<> struct to_be { using type = bool; }; template<> struct to_be { using type = char; }; @@ -898,7 +897,7 @@ template struct is_le_t> : public std::integral_constant struct to_le { - using type = std::conditional_t::value || std::is_enum::value, le_t, T>; + using type = std::conditional_t::value || std::is_enum::value || std::is_same::value, le_t, T>; }; // le_t if possible, T otherwise @@ -916,7 +915,6 @@ template struct to_le using type = volatile to_le_t>; }; -template<> struct to_le { using type = u128; }; template<> struct to_le { using type = void; }; template<> struct to_le { using type = bool; }; template<> struct to_le { using type = char; }; @@ -929,9 +927,6 @@ template struct to_ne using type = T; }; -// restore native endianness for T: returns T for be_t or le_t, T otherwise -template using to_ne_t = typename to_ne::type; - template struct to_ne> { using type = T; @@ -941,3 +936,18 @@ template struct to_ne> { using type = T; }; + +// restore native endianness for T: returns T for be_t or le_t, T otherwise +template using to_ne_t = typename to_ne::type; + +template struct to_ne +{ + // move const qualifier + using type = const to_ne_t>; +}; + +template struct to_ne +{ + // move volatile qualifier + using type = volatile to_ne_t>; +};