10#ifndef ENDIAN_FUNC_HPP
11#define ENDIAN_FUNC_HPP
15static constexpr uint16_t FROM_BE16(uint16_t x)
17 if constexpr (std::endian::native == std::endian::big)
return x;
21static constexpr uint32_t FROM_BE32(uint32_t x)
23 if constexpr (std::endian::native == std::endian::big)
return x;
27static constexpr uint16_t TO_BE16(uint16_t x)
29 if constexpr (std::endian::native == std::endian::big)
return x;
33static constexpr uint32_t TO_BE32(uint32_t x)
35 if constexpr (std::endian::native == std::endian::big)
return x;
39static constexpr uint16_t FROM_LE16(uint16_t x)
41 if constexpr (std::endian::native == std::endian::little)
return x;
45static constexpr uint32_t FROM_LE32(uint32_t x)
47 if constexpr (std::endian::native == std::endian::little)
return x;
51static constexpr uint16_t TO_LE16(uint16_t x)
53 if constexpr (std::endian::native == std::endian::little)
return x;
57static constexpr uint32_t TO_LE32(uint32_t x)
59 if constexpr (std::endian::native == std::endian::little)
return x;
Functions related to bit mathematics.
constexpr enable_if_t< is_integral_v< T >, T > byteswap(T x) noexcept
Custom implementation of std::byteswap; remove once we build with C++23.