| 32 | |
| 33 | template <typename T> |
| 34 | static inline T byteSwap(const T& v) { |
| 35 | int size = sizeof(v); |
| 36 | T ret; |
| 37 | uint8_t *dest = reinterpret_cast<uint8_t *>(&ret); |
| 38 | uint8_t *src = const_cast<uint8_t*>(reinterpret_cast<const uint8_t*>(&v)); |
| 39 | for (int i = 0; i < size; ++i) { |
| 40 | dest[i] = src[size - i - 1]; |
| 41 | } |
| 42 | return ret; |
| 43 | } |
| 44 | |
| 45 | template <typename T> |
| 46 | static inline T hton(const T& v) |