42 #ifndef BYTE_ORDER_H_INCLUDED
43 #define BYTE_ORDER_H_INCLUDED
57 const size_t k_64bits = 64;
58 const size_t k_56bits = 56;
59 const size_t k_48bits = 48;
60 const size_t k_40bits = 40;
61 const size_t k_32bits = 32;
62 const size_t k_24bits = 24;
63 const size_t k_16bits = 16;
64 const size_t k_8bits = 8;
93 return (input >> convert::k_8bits)
94 | (input << convert::k_8bits);
106 return static_cast<int32_t
> (
120 return (input >> convert::k_24bits)
121 | ((input << convert::k_8bits) & 0x00FF0000)
122 | ((input >> convert::k_8bits) & 0x0000FF00)
123 | (input << convert::k_24bits);
135 return static_cast<int32_t
> (
149 return (input >> (convert::k_56bits))
150 | (input >> (convert::k_40bits) & 0x000000000000FF00LL)
151 | (input >> (convert::k_24bits) & 0x0000000000FF0000LL)
152 | (input >> (convert::k_8bits) & 0x00000000FF000000LL)
153 | (input << (convert::k_8bits) & 0x000000FF00000000LL)
154 | (input << (convert::k_24bits) & 0x0000FF0000000000LL)
155 | (input << (convert::k_40bits) & 0x00FF000000000000LL)
156 | (input << (convert::k_56bits));
168 return static_cast<int64_t
> (
174 #if defined(_WIN32) && defined(_HAS_TR1)
182 return EndianSwap<unsigned long>(input);
198 template <
typename T,
bool isSwap>
224 template <
typename T>
261 template <Endianess E>
270 template <
typename T>
272 T to_host(
const T &input)
277 template <
typename T>
279 T to_network(
const T& input)
314 template <Endianess E>
321 bool is_host =
false;
323 template <
typename T>
325 T to_host(
const T &input)
331 template <
typename T>
333 T to_network(
const T &input)
348 #if (ALCHEMY_BIG_ENDIAN == ALCHEMY_ENDIANESS)