11 return std::endian::native == std::endian::big;
17 return __builtin_bswap16(v);
18#elif __cplusplus >= 202302L
19 return std::byteswap(v);
21 return (v>>8) | (v<<8);
28 return __builtin_bswap32(v);
29#elif __cplusplus >= 202302L
30 return std::byteswap(v);
32 return ((v>>24)&0xff) | ((v<<8)&0xff0000) | ((v>>8)&0xff00) | ((v<<24)&0xff000000);
39 return __builtin_bswap64(v);
40#elif __cplusplus >= 202302L
41 return std::byteswap(v);
72 return std::bit_cast<int16_t, uint16_t>(
SwapEndian16(std::bit_cast<uint16_t, int16_t>(val)));
78 return std::bit_cast<int32_t, uint32_t>(
SwapEndian32(std::bit_cast<uint32_t, int32_t>(val)));
84 return std::bit_cast<int64_t, uint64_t>(
SwapEndian64(std::bit_cast<uint64_t, int64_t>(val)));
Definition Endianness.hpp:7
T SwapEndian(T val)=delete
constexpr uint32_t SwapEndian32(uint32_t v)
Definition Endianness.hpp:25
constexpr bool IsBigEndian()
Definition Endianness.hpp:9
constexpr uint16_t SwapEndian16(uint16_t v)
Definition Endianness.hpp:14
constexpr uint64_t SwapEndian64(uint64_t v)
Definition Endianness.hpp:36