| 25 | |
| 26 | template <typename T> |
| 27 | T ReverseByteOrder(T t) |
| 28 | { |
| 29 | static_assert(std::is_integral<T>::value, "Only integral types are supported."); |
| 30 | |
| 31 | T res; |
| 32 | char const * a = reinterpret_cast<char const *>(&t); |
| 33 | char * b = reinterpret_cast<char *>(&res); |
| 34 | for (size_t i = 0; i < sizeof(T); ++i) |
| 35 | b[i] = a[sizeof(T) - 1 - i]; |
| 36 | return res; |
| 37 | } |
| 38 | |
| 39 | template <typename T> |
| 40 | T SwapIfBigEndianMacroBased(T t) |
no outgoing calls