9 #ifndef _gu_byteswap_hpp_
10 #define _gu_byteswap_hpp_
12 #include "gu_byteswap.h"
20 template <
typename T> T gtoh (
const T& val)
23 return val.this_template_does_not_support_this_type();
28 template <> GU_FORCE_INLINE uint8_t gtoh (
const uint8_t& val)
33 template <> GU_FORCE_INLINE uint16_t gtoh (
const uint16_t& val)
38 template <> GU_FORCE_INLINE
unsigned int gtoh (
const unsigned int& val)
43 #if __LONG_MAX__ == __INT_MAX__
44 template <> GU_FORCE_INLINE
unsigned long gtoh (
const unsigned long& val)
48 #elif __LONG_MAX__ == __LONG_LONG_MAX__
49 template <> GU_FORCE_INLINE
unsigned long gtoh (
const unsigned long& val)
54 # error can not determine size of long
57 template <> GU_FORCE_INLINE
unsigned long long gtoh (
const unsigned long long& val)
62 template <
typename T> T htog (
const T& val) {
return gtoh<T>(val); }