15#if !defined(PER_MODULE_BOILERPLATE_ANYLINK)
16#define PER_MODULE_BOILERPLATE_ANYLINK(ModuleImplClass, ModuleName)
31#if USING_CODE_ANALYSIS
32 #define OPERATOR_NEW_MSVC_PRAGMA MSVC_PRAGMA( warning( suppress : 28251 ) )
34 #define OPERATOR_NEW_MSVC_PRAGMA
37#define UE_DEFINE_FMEMORY_WRAPPERS \
38 void* FMemory_Malloc ( size_t Size, size_t Alignment ) { return FMemory::Malloc( Size, Alignment ); } \
39 void* FMemory_Realloc( void* Original, size_t Size, size_t Alignment ) { return FMemory::Realloc( Original, Size, Alignment ); } \
40 void FMemory_Free ( void *Ptr ) { FMemory::Free( Ptr ); }
44#if !FORCE_ANSI_ALLOCATOR && !defined(__clang_analyzer__)
46 #define REPLACEMENT_OPERATOR_NEW_AND_DELETE \
47 FORCENOINLINE OPERATOR_NEW_MSVC_PRAGMA void* operator new ( size_t Size ) OPERATOR_NEW_THROW_SPEC { return FMemory_MallocInline( Size ? Size : 1, Size <= 8 ? 8 : __STDCPP_DEFAULT_NEW_ALIGNMENT__ ); } \
48 FORCENOINLINE OPERATOR_NEW_MSVC_PRAGMA void* operator new[]( size_t Size ) OPERATOR_NEW_THROW_SPEC { return FMemory_MallocInline( Size ? Size : 1, Size <= 8 ? 8 : __STDCPP_DEFAULT_NEW_ALIGNMENT__ ); } \
49 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__ ); } \
50 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__ ); } \
51 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 ); } \
52 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 ); } \
53 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 ); } \
54 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 ); } \
55 FORCENOINLINE void operator delete ( void* Ptr ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
56 FORCENOINLINE void operator delete[]( void* Ptr ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
57 FORCENOINLINE void operator delete ( void* Ptr, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
58 FORCENOINLINE void operator delete[]( void* Ptr, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
59 FORCENOINLINE void operator delete ( void* Ptr, size_t Size ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
60 FORCENOINLINE void operator delete[]( void* Ptr, size_t Size ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
61 FORCENOINLINE void operator delete ( void* Ptr, size_t Size, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
62 FORCENOINLINE void operator delete[]( void* Ptr, size_t Size, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
63 FORCENOINLINE void operator delete ( void* Ptr, std::align_val_t Alignment ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
64 FORCENOINLINE void operator delete[]( void* Ptr, std::align_val_t Alignment ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
65 FORCENOINLINE void operator delete ( void* Ptr, std::align_val_t Alignment, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
66 FORCENOINLINE void operator delete[]( void* Ptr, std::align_val_t Alignment, const std::nothrow_t& ) OPERATOR_DELETE_NOTHROW_SPEC { FMemory_FreeInline( Ptr ); } \
67 FORCENOINLINE void operator delete ( void* Ptr, size_t Size, std::align_val_t Alignment ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
68 FORCENOINLINE void operator delete[]( void* Ptr, size_t Size, std::align_val_t Alignment ) OPERATOR_DELETE_THROW_SPEC { FMemory_FreeInline( Ptr ); } \
69 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 ); } \
70 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 ); }
72 #define REPLACEMENT_OPERATOR_NEW_AND_DELETE
79#if defined(__has_cpp_attribute)
80 #if __has_cpp_attribute(used) && __has_cpp_attribute(retain)
81 #define UE_VISUALIZER_USE_AND_RETAIN [[used]] [[retain]]
82 #elif __has_cpp_attribute(gnu::used) && __has_cpp_attribute(gnu::retain)
83 #define UE_VISUALIZER_USE_AND_RETAIN [[gnu::used]] [[gnu::retain]]
86#ifndef UE_VISUALIZER_USE_AND_RETAIN
87#define UE_VISUALIZER_USE_AND_RETAIN
90#ifdef DISABLE_UE4_VISUALIZER_HELPERS
91 UE_DEPRECATED_HEADER(5.5,
"DISABLE_UE4_VISUALIZER_HELPERS has been disabled, please define UE_ENABLE_VISUALIZER_HELPERS=0 instead.")
92 #define UE_ENABLE_VISUALIZER_HELPERS 0
94#ifndef UE_ENABLE_VISUALIZER_HELPERS
95 #define UE_ENABLE_VISUALIZER_HELPERS 1
98#if !UE_ENABLE_VISUALIZER_HELPERS
99 #define UE_VISUALIZERS_HELPERS
100#elif PLATFORM_UNIX || PLATFORM_MAC
102 #define UE_VISUALIZERS_HELPERS
104 #define UE_VISUALIZERS_HELPERS \
105 UE_VISUALIZER_USE_AND_RETAIN uint8** GNameBlocksDebug = FNameDebugVisualizer(FClangKeepDebugInfo{}).GetBlocks(); \
106 UE_VISUALIZER_USE_AND_RETAIN FChunkedFixedUObjectArray*& GObjectArrayForDebugVisualizers = GCoreObjectArrayForDebugVisualizers; \
107 UE_VISUALIZER_USE_AND_RETAIN UE::CoreUObject::Private::FStoredObjectPathDebug*& GComplexObjectPathDebug = GCoreComplexObjectPathDebug; \
108 UE_VISUALIZER_USE_AND_RETAIN UE::CoreUObject::Private::FObjectHandlePackageDebugData*& GObjectHandlePackageDebug = GCoreObjectHandlePackageDebug; \
109 UE_VISUALIZER_USE_AND_RETAIN UE::Core::FVisualizerDebuggingState*& GDebuggingState = GCoreDebuggingState;
114#define PER_MODULE_BOILERPLATE \
115 UE_VISUALIZERS_HELPERS \
116 REPLACEMENT_OPERATOR_NEW_AND_DELETE \
117 UE_DEFINE_FMEMORY_WRAPPERS
#define UE_DEPRECATED_HEADER(Version, Message)
Definition CoreMiscDefines.h:398
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition UObjectArray.h:716