Static assert sizes in ReverseBytesBitcast
This commit is contained in:
parent
f7c6f7ad97
commit
5b44d39e9e
|
@ -30,7 +30,11 @@ namespace Feather
|
||||||
inline int64_t ReverseBytes(int64_t n) { return int64_t(ReverseBytes(uint64_t(n))); }
|
inline int64_t ReverseBytes(int64_t n) { return int64_t(ReverseBytes(uint64_t(n))); }
|
||||||
|
|
||||||
template <typename J, typename T>
|
template <typename J, typename T>
|
||||||
inline T ReverseBytesBitcast(T n) { return std::bit_cast<T>(ReverseBytes(std::bit_cast<J>(n))); }
|
inline T ReverseBytesBitcast(T n)
|
||||||
|
{
|
||||||
|
static_assert(sizeof(T) == sizeof(J));
|
||||||
|
return std::bit_cast<T>(ReverseBytes(std::bit_cast<J>(n)));
|
||||||
|
}
|
||||||
|
|
||||||
inline float ReverseBytes(float n) { return ReverseBytesBitcast<uint32_t>(n); }
|
inline float ReverseBytes(float n) { return ReverseBytesBitcast<uint32_t>(n); }
|
||||||
inline double ReverseBytes(double n) { return ReverseBytesBitcast<uint64_t>(n); }
|
inline double ReverseBytes(double n) { return ReverseBytesBitcast<uint64_t>(n); }
|
||||||
|
|
Loading…
Reference in New Issue