AK: Use __builtin_bit_cast if available

We now use the compiler's buitin version of bitcast if it's available
instead of just resorting to using the builtin `memcpy`.
This commit is contained in:
Jesse Buhagiar 2021-08-21 15:08:06 +10:00 committed by Ali Mohammad Pur
parent 4ab8939670
commit 2fe5f1528f
Notes: sideshowbarker 2024-07-18 05:26:35 +09:00

View file

@ -11,11 +11,15 @@ namespace AK {
template<typename T, typename U>
inline T bit_cast(const U& a)
{
#if (__has_builtin(__builtin_bit_cast))
return __builtin_bit_cast(T, a);
#else
static_assert(sizeof(T) == sizeof(U));
T result;
__builtin_memcpy(&result, &a, sizeof(T));
return result;
#endif
}
}