| 17 | # endif |
| 18 | |
| 19 | constexpr auto ReverseBytes(std::integral auto value) |
| 20 | { |
| 21 | return |
| 22 | [&]<size_t... I>(std::index_sequence<I...>) -> decltype(value) { |
| 23 | return ((((value >> I * 8) & 0xff) |
| 24 | << ((8 * sizeof(value)) - ((1 + I) * 8))) | |
| 25 | ...); |
| 26 | }(std::make_index_sequence<sizeof(value)>{}); |
| 27 | } |
| 28 | |
| 29 | template<std::integral T> |
| 30 | constexpr T ByteSwap(T value) |