UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ModuleBoilerplate.h File Reference

Go to the source code of this file.

Macros

#define PER_MODULE_BOILERPLATE_ANYLINK(ModuleImplClass, ModuleName)
 
#define OPERATOR_NEW_MSVC_PRAGMA
 
#define UE_DEFINE_FMEMORY_WRAPPERS
 
#define REPLACEMENT_OPERATOR_NEW_AND_DELETE
 
#define UE_VISUALIZER_USE_AND_RETAIN
 
#define UE_ENABLE_VISUALIZER_HELPERS   1
 
#define UE_VISUALIZERS_HELPERS
 
#define PER_MODULE_BOILERPLATE
 

Macro Definition Documentation

◆ OPERATOR_NEW_MSVC_PRAGMA

#define OPERATOR_NEW_MSVC_PRAGMA

Override new + delete operators (and array versions) in every module. This prevents the possibility of mismatched new/delete calls such as a new[] that uses Unreal's allocator and a delete[] that uses the system allocator.

Overloads have to guarantee at least 1 byte is allocated because otherwise new T[0] could return a null pointer, as could ::operator new(0), depending on the allocator (e.g. TBB), which is non-standard behaviour.

FMemory_Malloc, FMemory_Realloc and FMemory_Free have been added for thirdparty libraries that need malloc. These functions will allow for proper memory tracking.

◆ PER_MODULE_BOILERPLATE

#define PER_MODULE_BOILERPLATE
Value:
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127

◆ PER_MODULE_BOILERPLATE_ANYLINK

#define PER_MODULE_BOILERPLATE_ANYLINK (   ModuleImplClass,
  ModuleName 
)

◆ REPLACEMENT_OPERATOR_NEW_AND_DELETE

#define REPLACEMENT_OPERATOR_NEW_AND_DELETE
Value:
FORCENOINLINE OPERATOR_NEW_MSVC_PRAGMA void* operator new ( size_t Size, const std::nothrow_t& ) OPERATOR_NEW_NOTHROW_SPEC { return FMemory_MallocInline( Size ? Size : 1, Size <= 8 ? 8 : __STDCPP_DEFAULT_NEW_ALIGNMENT__ ); } \
FORCENOINLINE OPERATOR_NEW_MSVC_PRAGMA void* operator new[]( size_t Size, const std::nothrow_t& ) OPERATOR_NEW_NOTHROW_SPEC { return FMemory_MallocInline( Size ? Size : 1, Size <= 8 ? 8 : __STDCPP_DEFAULT_NEW_ALIGNMENT__ ); } \
FORCENOINLINE OPERATOR_NEW_MSVC_PRAGMA void* operator new ( size_t Size, std::align_val_t Alignment ) OPERATOR_NEW_THROW_SPEC { return FMemory_MallocInline( Size ? Size : 1, (std::size_t)Alignment ); } \
FORCENOINLINE OPERATOR_NEW_MSVC_PRAGMA void* operator new[]( size_t Size, std::align_val_t Alignment ) OPERATOR_NEW_THROW_SPEC { return FMemory_MallocInline( Size ? Size : 1, (std::size_t)Alignment ); } \
FORCENOINLINE OPERATOR_NEW_MSVC_PRAGMA void* operator new ( size_t Size, std::align_val_t Alignment, const std::nothrow_t& ) OPERATOR_NEW_NOTHROW_SPEC { return FMemory_MallocInline( Size ? Size : 1, (std::size_t)Alignment ); } \
FORCENOINLINE OPERATOR_NEW_MSVC_PRAGMA void* operator new[]( size_t Size, std::align_val_t Alignment, const std::nothrow_t& ) OPERATOR_NEW_NOTHROW_SPEC { return FMemory_MallocInline( Size ? Size : 1, (std::size_t)Alignment ); } \
FORCENOINLINE void operator delete ( void* Ptr ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete[]( void* Ptr ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete ( void* Ptr, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete[]( void* Ptr, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete ( void* Ptr, size_t Size ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete[]( void* Ptr, size_t Size ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete ( void* Ptr, size_t Size, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete[]( void* Ptr, size_t Size, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete ( void* Ptr, std::align_val_t Alignment ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete[]( void* Ptr, std::align_val_t Alignment ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete ( void* Ptr, std::align_val_t Alignment, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete[]( void* Ptr, std::align_val_t Alignment, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete ( void* Ptr, size_t Size, std::align_val_t Alignment ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete[]( void* Ptr, size_t Size, std::align_val_t Alignment ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete ( void* Ptr, size_t Size, std::align_val_t Alignment, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
FORCENOINLINE void operator delete[]( void* Ptr, size_t Size, std::align_val_t Alignment, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); }
#define OPERATOR_DELETE_THROW_SPEC
Definition AndroidPlatform.h:172
#define OPERATOR_DELETE_NOTHROW_SPEC
Definition AndroidPlatform.h:174
#define FORCENOINLINE
Definition AndroidPlatform.h:142
#define OPERATOR_NEW_THROW_SPEC
Definition AndroidPlatform.h:170
#define OPERATOR_NEW_NOTHROW_SPEC
Definition AndroidPlatform.h:173
void FMemory_FreeInline(void *Original)
Definition FMemory.inl:139
FORCEINLINE void * FMemory_MallocInline(SIZE_T Count, uint32 Alignment)
Definition FMemory.inl:17
#define OPERATOR_NEW_MSVC_PRAGMA
Definition ModuleBoilerplate.h:34
uint32 Size
Definition VulkanMemory.cpp:4034

◆ UE_DEFINE_FMEMORY_WRAPPERS

#define UE_DEFINE_FMEMORY_WRAPPERS
Value:
void* FMemory_Malloc ( size_t Size, size_t Alignment ) { return FMemory::Malloc( Size, Alignment ); } \
void* FMemory_Realloc( void* Original, size_t Size, size_t Alignment ) { return FMemory::Realloc( Original, Size, Alignment ); } \
void FMemory_Free ( void *Ptr ) { FMemory::Free( Ptr ); }
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685

◆ UE_ENABLE_VISUALIZER_HELPERS

#define UE_ENABLE_VISUALIZER_HELPERS   1

◆ UE_VISUALIZER_USE_AND_RETAIN

#define UE_VISUALIZER_USE_AND_RETAIN

◆ UE_VISUALIZERS_HELPERS

#define UE_VISUALIZERS_HELPERS
Value:
UE::CoreUObject::Private::FStoredObjectPathDebug * GCoreComplexObjectPathDebug
Definition CoreGlobals.cpp:272
UE::CoreUObject::Private::FObjectHandlePackageDebugData * GCoreObjectHandlePackageDebug
Definition CoreGlobals.cpp:273
CORE_API FChunkedFixedUObjectArray * GCoreObjectArrayForDebugVisualizers
Definition CoreGlobals.cpp:265
#define UE_VISUALIZER_USE_AND_RETAIN
Definition ModuleBoilerplate.h:87
UE::Core::FVisualizerDebuggingState * GCoreDebuggingState
Definition VisualizerDebuggingState.cpp:11
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition UObjectArray.h:716
Definition NameTypes.h:65
Definition NameTypes.h:1666
Definition VisualizerDebuggingState.h:75