#pragma once #include "platform.h" template typename etl::enable_if<(sizeof(TDestination) == sizeof(TSource)) && etl::is_trivially_copyable::value && etl::is_trivially_copyable::value, TDestination>::type bit_cast(const TSource& source) ETL_NOEXCEPT { TDestination destination; memcpy(&destination, &source, sizeof(TDestination)); return destination; } template ETL_CONSTEXPR typename etl::enable_if<(sizeof(TDestination) == sizeof(TSource)) && etl::is_trivially_copyable::value && etl::is_trivially_copyable::value, TDestination>::type bit_cast(const TSource& source) ETL_NOEXCEPT { TDestination destination; __builtin_memcpy(&destination, &source, sizeof(TDestination)); return destination; }