15enum EInternal {EC_InternalUseOnlyConstructor};
18#define DEFINE_DEFAULT_CONSTRUCTOR_CALL(TClass) \
19 static void __DefaultConstructor(const FObjectInitializer& X) { new((EInternal*)X.GetObj())TClass; }
21#define DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
22 static void __DefaultConstructor(const FObjectInitializer& X) { new((EInternal*)X.GetObj())TClass(X); }
28#define DECLARE_KARMA_CLASS(TClass, TSuperClass) \
30 DEFINE_DEFAULT_CONSTRUCTOR_CALL(TClass) \
32 typedef TSuperClass Super;\
34 static UClass* StaticClass() \
36 UClass* returnClass_##TClass = nullptr; \
37 if(strcmp(#TClass, #TSuperClass) != 0) \
39 GetPrivateStaticClassBody( \
42 returnClass_##TClass, \
45 (ClassConstructorType)InternalConstructor<TClass>, \
46 &TClass::Super::StaticClass \
51 GetPrivateStaticClassBody( \
54 returnClass_##TClass, \
57 (ClassConstructorType)InternalConstructor<TClass>, \
58 &TClass::Super::NullClass \
61 return returnClass_##TClass; \
63 inline static UClass* NullClass() \
Definition UObjectGlobals.h:738