#ifndef __TRACYALIGN_HPP__ #define __TRACYALIGN_HPP__ #include #include #include "TracyForceInline.hpp" #if defined _MSC_VER && !defined _M_IX86 # define TracyUnaligned __unaligned #else # define TracyUnaligned #endif namespace tracy { template tracy_force_inline T MemRead( const TracyUnaligned T* ptr ) { T val; memcpy( &val, ptr, sizeof( T ) ); return val; } template tracy_force_inline void MemWrite( TracyUnaligned T* ptr, U val ) { static_assert( std::is_same::value, "MemWrite type mismatch" ); memcpy( (void*)ptr, &val, sizeof( T ) ); } } #endif