From 5b44d39e9e65d6801ac2ca571e476451b9eec83f Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Fri, 7 Aug 2020 04:12:10 +0100 Subject: [PATCH] Static assert sizes in ReverseBytesBitcast --- src/util/ByteUtil.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/util/ByteUtil.h b/src/util/ByteUtil.h index 6e2f207..52de8f4 100644 --- a/src/util/ByteUtil.h +++ b/src/util/ByteUtil.h @@ -30,7 +30,11 @@ namespace Feather inline int64_t ReverseBytes(int64_t n) { return int64_t(ReverseBytes(uint64_t(n))); } template - inline T ReverseBytesBitcast(T n) { return std::bit_cast(ReverseBytes(std::bit_cast(n))); } + inline T ReverseBytesBitcast(T n) + { + static_assert(sizeof(T) == sizeof(J)); + return std::bit_cast(ReverseBytes(std::bit_cast(n))); + } inline float ReverseBytes(float n) { return ReverseBytesBitcast(n); } inline double ReverseBytes(double n) { return ReverseBytesBitcast(n); }