From a5b377745116de2b269cdfc5b90f08f46d0432d2 Mon Sep 17 00:00:00 2001 From: hovertank3d Date: Thu, 13 Nov 2025 23:02:56 +0100 Subject: initial commit --- include/util/endian.hpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 include/util/endian.hpp (limited to 'include/util/endian.hpp') diff --git a/include/util/endian.hpp b/include/util/endian.hpp new file mode 100644 index 0000000..18e49f6 --- /dev/null +++ b/include/util/endian.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include +#include + +template + requires(sizeof(T) <= 8) +T to_little(T x) +{ + if constexpr (std::endian::native == std::endian::little || sizeof(T) == 1) { + return x; + } + switch (sizeof(T)) { + case 2: + return __builtin_bswap16(x); + case 4: + return __builtin_bswap32(x); + case 8: + return __builtin_bswap64(x); + } +} \ No newline at end of file -- cgit v1.2.3