diff --git a/Juliet/include/Core/Common/CoreUtils.h b/Juliet/include/Core/Common/CoreUtils.h index 4aa84e2..92f9e22 100644 --- a/Juliet/include/Core/Common/CoreUtils.h +++ b/Juliet/include/Core/Common/CoreUtils.h @@ -194,4 +194,18 @@ namespace Juliet #else #error AlignOf not defined for this compiler. #endif + + template + [[nodiscard]] constexpr const char* GetTypeName() + { +#if COMPILER_CLANG + return __PRETTY_FUNCTION__; +#elif COMPILER_MSVC + return __FUNCSIG__; +#elif COMPILER_GCC + return __PRETTY_FUNCTION__; +#else + return "UnknownType"; +#endif + } } // namespace Juliet diff --git a/Juliet/include/Core/Memory/MemoryArena.h b/Juliet/include/Core/Memory/MemoryArena.h index 987d53f..b789a23 100644 --- a/Juliet/include/Core/Memory/MemoryArena.h +++ b/Juliet/include/Core/Memory/MemoryArena.h @@ -4,9 +4,7 @@ #include #include #include -#include #include -#include // Added for typeid namespace Juliet { @@ -88,14 +86,14 @@ namespace Juliet [[nodiscard]] Type* ArenaPushStruct(NonNullPtr arena JULIET_DEBUG_PARAM(const char* tag = nullptr)) { return static_cast( - ArenaPush(arena, sizeof(Type) * 1, AlignOf(Type), true JULIET_DEBUG_PARAM(tag ? tag : typeid(Type).name()))); + ArenaPush(arena, sizeof(Type) * 1, AlignOf(Type), true JULIET_DEBUG_PARAM(tag ? tag : GetTypeName()))); } template [[nodiscard]] Type* ArenaPushArray(NonNullPtr arena, size_t count JULIET_DEBUG_PARAM(const char* tag = nullptr)) { return static_cast(ArenaPush(arena, sizeof(Type) * count, Max(8ull, AlignOf(Type)), - true JULIET_DEBUG_PARAM(tag ? tag : typeid(Type).name()))); + true JULIET_DEBUG_PARAM(tag ? tag : GetTypeName()))); } TempArena ArenaTempBegin(NonNullPtr arena);