13#include "Containers/Array.h"
16#include "Containers/Map.h"
17#include "Containers/Set.h"
50#include "Misc/Optional.h"
89#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_5
93#include "Class.generated.h"
141#if UE_WITH_CONSTINIT_UOBJECT
145#elif PLATFORM_FORCE_UE_LOCK_USAGE
200#if UE_WITH_CONSTINIT_UOBJECT
202 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
205 : Super(ObjectParams)
236#if WITH_EDITORONLY_DATA
269 bool HasMetaData(
const TCHAR* Key)
const {
return FindMetaData(Key) !=
nullptr; }
270 bool HasMetaData(
const FName& Key)
const {
return FindMetaData(Key) !=
nullptr; }
337 const FString&
IntString = GetMetaData(Key);
343 const FString&
IntString = GetMetaData(Key);
384#if WITH_EDITORONLY_DATA
398#if WITH_EDITORONLY_DATA
402enum class EPropertyValueFlags :
uint8
413#if USTRUCT_FAST_ISCHILDOF_IMPL == USTRUCT_ISCHILDOF_STRUCTARRAY
420#if UE_WITH_CONSTINIT_UOBJECT
423 , NumStructBasesInChainMinusOne(
InBases.
Num()-1)
438 int32 NumStructBasesInChainMinusOne = -1;
449struct TIntrinsicClassBaseChainImpl;
486 friend struct Z_Construct_UClass_UStruct_Statics;
491 friend struct UE::Private::TIntrinsicClassBaseChainImpl;
512 std::atomic<
uint16> StructStateFlags = 0;
520#if UE_WITH_CONSTINIT_UOBJECT && WITH_METADATA
546#if WITH_EDITORONLY_DATA
558 mutable std::atomic<const struct FUnversionedStructSchema*> UnversionedGameSchema =
nullptr;
559#if WITH_EDITORONLY_DATA
584#if UE_WITH_CONSTINIT_UOBJECT
586 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
604 , PropertyLink(nullptr)
606 , DestructorLink(nullptr)
607 , PostConstructLink(nullptr)
608 , ScriptAndPropertyObjectReferences(
ConstEval)
609 , UnresolvedScriptProperties(nullptr)
626#if !UE_WITH_CONSTINIT_UOBJECT
765 return PropertiesSize;
777 return Align(PropertiesSize,MinAlignment);
783 PropertiesSize = NewSize;
800 static_assert(
sizeof(T) == 0,
"Unsupported type - requires StaticClass or StaticStruct.");
806#if USTRUCT_FAST_ISCHILDOF_COMPARE_WITH_OUTERWALK || USTRUCT_FAST_ISCHILDOF_IMPL == USTRUCT_ISCHILDOF_OUTERWALK
869#if WITH_EDITORONLY_DATA
905 if (!UnresolvedScriptProperties)
915 if (UnresolvedScriptProperties)
917 delete UnresolvedScriptProperties;
918 UnresolvedScriptProperties =
nullptr;
939 COREUOBJECT_API void CollectBytecodeAndPropertyReferencedObjectsRecursively();
941 UE_DEPRECATED(5.7,
"Visit is deprecated, please use Visit with context instead.")
984#if WITH_EDITORONLY_DATA
992#if USTRUCT_FAST_ISCHILDOF_IMPL == USTRUCT_ISCHILDOF_STRUCTARRAY
999 friend class FBlueprintCompileReinstancer;
1008#if UE_WITH_CONSTINIT_UOBJECT
1107#if CHECK_PUREVIRTUALS
1108#define DISABLE_ABSTRACT_CONSTRUCT TStructOpsTypeTraits<CPPSTRUCT>::WithPureVirtual
1110#define DISABLE_ABSTRACT_CONSTRUCT (false && TStructOpsTypeTraits<CPPSTRUCT>::WithPureVirtual)
1117 template<
class CPPSTRUCT>
1122 ((
CPPSTRUCT*)
A)->AddStructReferencedObjects(Collector);
1171 template <
typename CppStruct>
1182 .HasSerializerObjectReferences = TraitsType::WithSerializerObjectReferences,
1183 .HasNoopConstructor = TraitsType::WithNoInitConstructor,
1184 .HasZeroConstructor = TraitsType::WithZeroConstructor,
1186 .HasSerializer = TraitsType::WithSerializer,
1187 .HasStructuredSerializer = TraitsType::WithStructuredSerializer,
1188 .HasPostSerialize = TraitsType::WithPostSerialize,
1189 .HasNetSerializer = TraitsType::WithNetSerializer,
1190 .HasNetSharedSerialization = TraitsType::WithNetSharedSerialization,
1191 .HasNetDeltaSerializer = TraitsType::WithNetDeltaSerializer,
1192 .HasPostScriptConstruct = TraitsType::WithPostScriptConstruct,
1196 .HasCopy = TraitsType::WithCopy,
1197 .HasIdentical = TraitsType::WithIdentical || TraitsType::WithIdenticalViaEquality,
1198 .HasExportTextItem = TraitsType::WithExportTextItem,
1199 .HasImportTextItem = TraitsType::WithImportTextItem,
1200 .HasAddStructReferencedObjects = TraitsType::WithAddStructReferencedObjects,
1201 .HasSerializeFromMismatchedTag = TraitsType::WithSerializeFromMismatchedTag,
1202 .HasStructuredSerializeFromMismatchedTag = TraitsType::WithStructuredSerializeFromMismatchedTag,
1206 .HasFindInnerPropertyInstance = TraitsType::WithFindInnerPropertyInstance,
1207 .ClearOnFinishDestroy = TraitsType::WithClearOnFinishDestroy,
1209 .HasCanEditChange = TraitsType::WithCanEditChange,
1211 .HasVisitor = TraitsType::WithVisitor,
1212 .HasGetPreloadDependencies = TraitsType::WithGetPreloadDependencies,
1213 .IsIntrusiveOptionalSafeForGC = TraitsType::WithIntrusiveOptionalSafeForGC,
1215 return Capabilities;
1218 template <
typename CppStruct>
1224#if CHECK_PUREVIRTUALS
1225 if constexpr (!TraitsType::WithPureVirtual)
1228 if constexpr (TraitsType::WithNoInitConstructor)
1239#if !(UE_BUILD_TEST || UE_BUILD_SHIPPING)
1240 template <
typename CppStruct>
1246#if CHECK_PUREVIRTUALS
1247 if constexpr (!TraitsType::WithPureVirtual)
1250 if constexpr (TraitsType::WithNoInitConstructor)
1263 template <
typename CppStruct>
1270 template <
typename CppStruct>
1284 template <
typename CppStruct>
1298 template <
typename CppStruct>
1305 template <
typename CppStruct>
1312 template <
typename CppStruct>
1319 template <
typename CppStruct>
1323 ((
CppStruct*)Data)->PostScriptConstruct();
1326 template <
typename CppStruct>
1333 template <
typename CppStruct>
1342 for (; ArrayDim; --ArrayDim)
1351 template <
typename CppStruct>
1358 template <
typename CppStruct>
1366 template <
typename CppStruct>
1394 template <
typename CppStruct>
1401 template <
typename CppStruct>
1408 template <
typename CppStruct>
1415 template <
typename CppStruct>
1425 StructName =
Tag.GetType().GetParameterName(0);
1435 template <
typename CppStruct>
1445 StructName =
Tag.GetType().GetParameterName(0);
1455 template <
typename CppStruct>
1462 template <
typename CppStruct>
1469 template <
typename CppStruct>
1476 template <
typename CppStruct>
1484 template <
typename CppStruct>
1490 #define UE_FOREACH_FAKE_VTABLE_FUNC_EDITOR_ONLY(...) __VA_ARGS__
1492 #define UE_FOREACH_FAKE_VTABLE_FUNC_EDITOR_ONLY(...)
1495#if !(UE_BUILD_TEST || UE_BUILD_SHIPPING)
1496 #define UE_FOREACH_FAKE_VTABLE_FUNC_WITH_TESTS_ONLY(...) __VA_ARGS__
1498 #define UE_FOREACH_FAKE_VTABLE_FUNC_WITH_TESTS_ONLY(...)
1501 template <
typename CppStruct>
1509 template <
typename CppStruct>
1516 #define UE_FOREACH_FAKE_VTABLE_FUNC(IndexNameFunctype) \
1517 IndexNameFunctype(0, Construct, void(void* Address)) \
1518 UE_FOREACH_FAKE_VTABLE_FUNC_WITH_TESTS_ONLY( \
1519 IndexNameFunctype(1, ConstructForTests, void(void* Address)) \
1521 IndexNameFunctype(2, Destruct, void(void* Address)) \
1522 IndexNameFunctype(3, SerializeArchive, bool(FArchive& Ar, void* Data, UStruct* DefaultsStruct, const void* Defaults)) \
1523 IndexNameFunctype(4, SerializeSlot, bool(FStructuredArchive::FSlot Slot, void* Data, UStruct* DefaultsStruct, const void* Defaults)) \
1524 IndexNameFunctype(5, PostSerialize, void(const FArchive& Ar, void* Data)) \
1525 IndexNameFunctype(6, NetSerialize, bool(FArchive& Ar, UPackageMap* Map, bool& bOutSuccess, void* Data)) \
1526 IndexNameFunctype(7, NetDeltaSerialize, bool(FNetDeltaSerializeInfo& DeltaParms, void* Data)) \
1527 IndexNameFunctype(8, PostScriptConstruct, void(void* Data)) \
1528 IndexNameFunctype(9, GetPreloadDependencies, void(void* Data, TArray<UObject*>& OutDeps)) \
1529 IndexNameFunctype(10, Copy, bool(void* Dest, void const* Src, int32 ArrayDim)) \
1530 IndexNameFunctype(11, Identical, bool(const void* A, const void* B, uint32 PortFlags, bool& bOutResult)) \
1531 IndexNameFunctype(12, ExportTextItem, bool(FString& ValueStr, const void* PropertyValue, const void* DefaultValue, UObject* Parent, int32 PortFlags, UObject* ExportRootScope)) \
1532 IndexNameFunctype(13, ImportTextItem, bool(const TCHAR*& Buffer, void* Data, int32 PortFlags, UObject* OwnerObject, FOutputDevice* ErrorText)) \
1533 IndexNameFunctype(14, FindInnerPropertyInstance, bool(FName PropertyName, const void* Data, const FProperty*& OutProp, const void*& OutData)) \
1534 IndexNameFunctype(15, AddStructReferencedObjects, void(*())(void* A, FReferenceCollector& Collector)) \
1535 IndexNameFunctype(16, SerializeFromMismatchedTag, bool(FPropertyTag const& Tag, FArchive& Ar, void* Data)) \
1536 IndexNameFunctype(17, StructuredSerializeFromMismatchedTag, bool(FPropertyTag const& Tag, FStructuredArchive::FSlot Slot, void* Data)) \
1537 IndexNameFunctype(18, GetStructTypeHash, uint32(const void* Src)) \
1538 IndexNameFunctype(19, InitializeIntrusiveUnsetOptionalValue, void(void* Data)) \
1539 IndexNameFunctype(20, IsIntrusiveOptionalValueSet, bool(const void* Data)) \
1540 IndexNameFunctype(21, ClearIntrusiveOptionalValue, void(void* Data)) \
1541 UE_FOREACH_FAKE_VTABLE_FUNC_EDITOR_ONLY( \
1542 IndexNameFunctype(22, CanEditChange, bool(const FEditPropertyChain& PropertyChain, const void* Data)) \
1544 IndexNameFunctype(23, Visit, EPropertyVisitorControlFlow(FPropertyVisitorContext& Context, const TFunctionRef<EPropertyVisitorControlFlow(const FPropertyVisitorContext& Context)> InFunc)) \
1545 IndexNameFunctype(24, ResolveVisitedPathInfo, void*(void* Data, const FPropertyVisitorInfo& Info))
1552 #define UE_VTABLE_ENUM(Index, Name, Functype) Name = 1u << Index,
1554 #undef UE_VTABLE_ENUM
1558 template <EStructOpsFakeVTableFlags Flag>
1560 template <
typename CppStruct, EStructOpsFakeVTableFlags Flag>
1563 #define UE_VTABLE_FUNC(Index, Name, Functype) \
1565 struct THandlingFunctionType<EStructOpsFakeVTableFlags::Name> \
1567 using Type = Functype; \
1569 template <typename CppStruct> \
1570 struct THandlingFunctionPtr<CppStruct, EStructOpsFakeVTableFlags::Name> \
1572 inline static constexpr TIdentity_T<Functype>* Value = &Name<CppStruct>; \
1575 #undef UE_VTABLE_FUNC
1577 template <
typename CppStruct>
1584 #define UE_VTABLE_SETFLAG(Index, Name, Functype) \
1585 if constexpr (requires(TIdentity_T<Functype>*& PtrRef) { PtrRef = &Name<CppStruct>; }) \
1587 Result |= EStructOpsFakeVTableFlags::Name; \
1590 #undef UE_VTABLE_SETFLAG
1612 template <EStructOpsFakeVTableFlags FuncFlag>
1619 #pragma warning(push)
1620 #pragma warning(disable : 4191)
1624 #pragma warning(pop)
1649 static_assert(
alignof(FStructOpsFakeVTable) ==
alignof(
void(*)()));
1650 return ((
void(**)())(
this + 1))[
Index];
1657 template <
auto...
Funcs>
1691 template <
typename CppStruct>
1711 template <
typename CppStruct>
1761 FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::Construct>()(Dest);
1764#if !(UE_BUILD_TEST || UE_BUILD_SHIPPING)
1768 FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::ConstructForTests>()(Dest);
1781 FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::Destruct>()(Dest);
1808 UE_DEPRECATED(5.6,
"Use the overload of Serialize with defaults.")
1811 return Serialize(Ar, Data,
nullptr,
nullptr);
1814 UE_DEPRECATED(5.6,
"Use the overload of Serialize with defaults.")
1817 return Serialize(Slot, Data,
nullptr,
nullptr);
1826 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::SerializeArchive>()(Ar, Data, DefaultsStruct,
Defaults);
1830 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::SerializeSlot>()(Slot, Data, DefaultsStruct,
Defaults);
1842 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::PostSerialize>()(Ar, Data);
1863 return HasNetSerializer() && FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::NetSerialize>()(Ar,
Map, bOutSuccess, Data);
1878 return HasNetDeltaSerializer() && FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::NetDeltaSerialize>()(
DeltaParms, Data);
1890 FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::PostScriptConstruct>()(Data);
1902 if (HasGetPreloadDependencies())
1904 FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::GetPreloadDependencies>()(Data,
OutDeps);
1929 return GetCapabilities().
HasCopy;
1938 return HasCopy() && FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::Copy>()(Dest, Src, ArrayDim);
1968 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::ExportTextItem>()(
ValueStr, PropertyValue, DefaultValue,
Parent, PortFlags, ExportRootScope);
2005 return EnumHasAnyFlags(GetCapabilities().HasSerializerObjectReferences, Type);
2017 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::AddStructReferencedObjects>()();
2037 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::SerializeFromMismatchedTag>()(
Tag, Ar, Data);
2042 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::StructuredSerializeFromMismatchedTag>()(
Tag, Slot, Data);
2054 if (HasGetTypeHash())
2056 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::GetStructTypeHash>()(Src);
2091 FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::InitializeIntrusiveUnsetOptionalValue>()(Data);
2097 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::IsIntrusiveOptionalValueSet>()(Data);
2103 FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::ClearIntrusiveOptionalValue>()(Data);
2119 return GetCapabilities().HasCanEditChange;
2152 return FakeVPtr->
GetHandlingFunc<UE::CoreUObject::Private::EStructOpsFakeVTableFlags::ResolveVisitedPathInfo>()(Data,
Info);
2164 const int32 Alignment;
2168 template<
class CPPSTRUCT>
2175 static_assert(!(TTraits::WithAddStructReferencedObjects &&
alignof(
CPPSTRUCT) <
alignof(
UObject*)),
"AddStructReferencedObjects() requires pointer alignment");
2181 static_assert(std::is_trivially_destructible_v<TCppStructOps>);
2182 static_assert(!std::is_polymorphic_v<TCppStructOps>);
2185 static_assert(!(TTraits::WithSerializeFromMismatchedTag && TTraits::WithStructuredSerializeFromMismatchedTag),
"Structs cannot have both WithSerializeFromMismatchedTag and WithStructuredSerializeFromMismatchedTag set");
2189 template<
class CPPSTRUCT>
2200 RemoveDeferredCppStructOps(
Name);
2204 #define IMPLEMENT_STRUCT(BaseName) \
2205 UE_DEPRECATED_MACRO(5.1, "IMPLEMENT_STRUCT has been deprecated. Use UE_IMPLEMENT_STRUCT and provide struct package name as well as struct name") static UScriptStruct::TAutoCppStructOps<F##BaseName> BaseName##_Ops(FTopLevelAssetPath(TEXT("/Script/CoreUObject"), TEXT(#BaseName)));
2207 #define UE_IMPLEMENT_STRUCT(PackageNameText, BaseName) \
2208 static UScriptStruct::TAutoCppStructOps<F##BaseName> BaseName##_Ops(FTopLevelAssetPath(TEXT(PackageNameText), TEXT(#BaseName)));
2214#if UE_WITH_CONSTINIT_UOBJECT
2216 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
2217 UE::CodeGen::ConstInit::FUFieldParams
FieldParams,
2219 UE::CodeGen::ConstInit::FScriptStructParams Params
2275 template<
class CPPSTRUCT>
2280 DeferCppStructOps(Target,
nullptr);
2294 checkf(bPrepareCppStructOpsCompleted,
TEXT(
"GetCppStructOps: PrepareCppStructOps() has not been called for class %s"), *GetPathName());
2295 return CppStructOps;
2302 bPrepareCppStructOpsCompleted =
false;
2303 CppStructOps =
nullptr;
2312 return !!GetCppStructOps();
2500#if UE_BLUEPRINT_EVENTGRAPH_FASTCALLS
2505 int32 EventGraphCallOffset;
2555#if UE_WITH_CONSTINIT_UOBJECT
2557 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
2558 UE::CodeGen::ConstInit::FUFieldParams
FieldParams,
2560 UE::CodeGen::ConstInit::FFunctionParams Params)
2562 , FunctionFlags(Params.FunctionFlags)
2565 , ReturnValueOffset(0)
2566 , RPCId(Params.RPCId)
2567 , RPCResponseId(Params.RPCResponseId)
2568 , FirstPropertyToInit(nullptr)
2613 return reinterpret_cast<UClass*
>(GetOuter());
2692#if UE_WITH_CONSTINIT_UOBJECT
2694 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
2695 UE::CodeGen::ConstInit::FUFieldParams
FieldParams,
2697 UE::CodeGen::ConstInit::FFunctionParams Params
2721#if UE_WITH_CONSTINIT_UOBJECT
2723 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
2724 UE::CodeGen::ConstInit::FUFieldParams
FieldParams,
2727 UE::CodeGen::ConstInit::FSparseDelegateParams Params
2742#if UE_WITH_CONSTINIT_UOBJECT
2753#if UE_WITH_CONSTINIT_UOBJECT
2805#if UE_WITH_CONSTINIT_UOBJECT
2807 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
2808 UE::CodeGen::ConstInit::FUFieldParams
FieldParams,
2809 UE::CodeGen::ConstInit::FEnumParams
EnumParams
2825 FString CppType = {};
2826#if UE_WITH_CONSTINIT_UOBJECT
2835#if WITH_METADATA && UE_WITH_CONSTINIT_UOBJECT
2950 UE_DEPRECATED(5.1,
"RemoveNamesFromMasterList is deprecated, please use RemoveNamesFromPrimaryList instead.")
2953 RemoveNamesFromPrimaryList();
3020 UE_DEPRECATED(5.1,
"LookupEnumName that takes only enum name is deprecated. Please use the version of this function that also takes enum package name.")
3039 UE_DEPRECATED(5.1,
"LookupEnumNameSlow that takes only enum name is deprecated. Please use the version of this function that also takes enum package name.")
3068#if UE_WITH_CONSTINIT_UOBJECT
3160 template <
typename T>
3168 template <
typename T>
3180 template <
typename T>
3188 template <
typename T>
3205 template <
typename T>
3213 template <
typename T>
3230 template<
typename EnumType>
3236 check(EnumClass !=
nullptr);
3240 template<
typename EnumType>
3246 template<
typename EnumType>
3257 template<
typename EnumType>
3265 template<
typename EnumType>
3271 template<
typename EnumType>
3291 check(EnumClass !=
nullptr);
3316 check(EnumClass !=
nullptr);
3320 template<
typename EnumType>
3341 template<
typename EnumType>
3347 check(EnumClass !=
nullptr);
3351 template<
typename EnumType>
3357 template<
typename EnumType>
3373 check(Values.size() != 0);
3393 static inline constexpr UPTRINT TagDynamic = 0x1;
3395 static inline constexpr UPTRINT MaskPointer = ~0x1;
3398#if UE_WITH_CONSTINIT_UOBJECT
3407#if UE_WITH_CONSTINIT_UOBJECT
3415 int32 NumValues = 0;
3418 void DeleteValues();
3426#if UE_WITH_CONSTINIT_UOBJECT
3449 return { GetNames()[
Index], GetValues()[
Index] };
3452#if UE_WITH_CONSTINIT_UOBJECT
3475 checkfSlow(!!(TaggedNames & TagDynamic),
TEXT(
"This function should only be used after compiled-in enums have copied their static string names into FNames"));
3476 return MakeArrayView(
reinterpret_cast<FName*
>(TaggedNames & MaskPointer), NumValues);
3482 checkfSlow(!!(TaggedNames & TagDynamic),
TEXT(
"This function should only be used after compiled-in enums have copied their static string names into FNames"));
3508#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
3530 .Names =
reinterpret_cast<FName*
>(TaggedNames & MaskPointer),
3531 .Values =
reinterpret_cast<int64*
>(TaggedValues & MaskPointer)
3559 UE_DEPRECATED(5.1,
"AddNamesToMasterList is deprecated, please use AddNamesToPrimaryList instead.")
3562 AddNamesToPrimaryList();
3614 void RenameNamesAfterDuplication();
3617 FString GetBaseEnumNameOnDuplication()
const;
3635template<
class CPPCLASS>
3674 return Info->bIsAbstract;
3703#if UE_WITH_CONSTINIT_UOBJECT
3717#if UE_WITH_CONSTINIT_UOBJECT
3798 friend class FBlueprintEditorUtils;
3799 friend class FBlueprintCompileReinstancer;
3800 friend struct FBlueprintCompilationManagerImpl;
3804 typedef UClass* (*StaticClassFunctionType)();
3832#if WITH_EDITORONLY_DATA
3857#if UE_WITH_CONSTINIT_UOBJECT
3896 check(This->IsA(
this));
3902#if WITH_EDITORONLY_DATA
3906 check(CppClassStaticFunctions.GetDeclareCustomVersions());
3907 CppClassStaticFunctions.GetDeclareCustomVersions()(Ar,
this);
3913 check(CppClassStaticFunctions.GetAppendToClassSchema());
3914 CppClassStaticFunctions.GetAppendToClassSchema()(
Context);
3920 check(CppClassStaticFunctions.GetDeclareConstructClasses());
3926 UE_DEPRECATED(5.6,
"ClassDefaultObject will be made private in the next release. For general purpose access to the CDO consider using the global GetDefault<>() or GetMutableDefault<>() functions.")
3931#if UE_WITH_REMOTE_OBJECT_HANDLE
3942 bool bNeedsDynamicSubobjectInstancing =
false;
3976 FuncMap.GenerateKeyArray(
OutArray);
4012#if UE_WITH_CONSTINIT_UOBJECT
4029#if UE_WITH_CONSTINIT_UOBJECT
4046#if UE_WITH_CONSTINIT_UOBJECT
4048 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
4049 UE::CodeGen::ConstInit::FUFieldParams
FieldParams,
4051 UE::CodeGen::ConstInit::FClassParams Params
4127 AllFunctionsCache.Remove(FuncName);
4131#if UE_WITH_CONSTINIT_UOBJECT
4143 FuncMap.Remove(
Function->GetFName());
4148 AllFunctionsCache.Remove(
Function->GetFName());
4174 UE_DEPRECATED(5.4,
"Implement the version that takes FAssetRegistryTagsContext instead.")
4183 virtual bool IsAsset()
const override {
return false; }
4200#if WITH_EDITORONLY_DATA
4214 return GetStructPathName();
4234 template <
typename T>
4259 template <
typename T>
4283 template <
typename T>
4354 return (
UClass*)GetSuperStruct();
4378 InternalCreateDefaultObjectWrapper();
4390#if UE_WITH_REMOTE_OBJECT_HANDLE
4480 UObject *Ret = GetDefaultObject();
4651 UE_DEPRECATED(5.5,
"Replace with UE::Reflection::DoesSparseClassDataOverrideArchetype(Class, [](const FProperty*){return true;})")
4676#if WITH_EDITORONLY_DATA
4695 return bNeedsDynamicSubobjectInstancing;
4712 template <
typename T>
4713 bool Implements()
const
4715 return UObject::Implements<T>();
4741#if UE_WITH_REMOTE_OBJECT_HANDLE
4760#if UE_WITH_CONSTINIT_UOBJECT
4764 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
4765 UE::CodeGen::ConstInit::FUFieldParams
FieldParams,
4767 UE::CodeGen::ConstInit::FClassParams Params
4771 , ClassConstructor(
Params.ClassConstructor)
4772 , ClassVTableHelperCtorCaller(
Params.ClassVTableHelperCtorCaller)
4773 , CppClassStaticFunctions(
Params.CppClassStaticFunctions)
4776 , bLayoutChanging(
false)
4778 , ClassCastFlags(
Params.ClassCastFlags)
4786 , SparseClassData(nullptr)
4787 , SparseClassDataStruct(
Params.SparseClassDataStruct)
4794 , AllFunctionsCacheLock()
4800 checkf(
Params.NativeFunctions.Num() == 0,
TEXT(
"UObject must have no native functions because ScriptCore will try and override it"));
4818 T::__DefaultConstructor(
X);
4828 return T::__VTableCtorCaller(Helper);
4836 const TCHAR* PackageName,
4840UE_DEPRECATED(5.6,
"Use the new method above and specify UClass::StaticClass as the first argument")
4845 const
TCHAR* PackageName,
4868 const
TCHAR* PackageName,
4883#if UE_WITH_CONSTINIT_UOBJECT
4894 UE::CodeGen::ConstInit::FObjectParams ObjectParams,
4895 UE::CodeGen::ConstInit::FUFieldParams
FieldParams,
4897 UE::CodeGen::ConstInit::FScriptStructParams Params
4900 , StructFlags(
Params.StructFlags)
4901 , bPrepareCppStructOpsCompleted(
false)
4969 return GetDestinationRoot() !=
nullptr;
4977 return DestinationRoot;
5039 template <
typename Predicate>
5077 bLoadingObject = bIsLoading;
5085 SubobjectInstantiationExclusionList.Add(
Property);
5093 return SubobjectInstantiationExclusionList.Contains(
Property);
5112 bool IsLoadingObject()
const
5114 return bLoadingObject;
5143 class UObject* SourceRoot =
nullptr;
5153 class UObject* DestinationRoot =
nullptr;
5161 bool bCreatingArchetype =
false;
5166 bool bLoadingObject =
false;
5205 return MyClass &&
MyClass->ImplementsInterface(T::StaticClass());
5225 check(
Class->GetDefaultObject()->IsA(T::StaticClass()));
5226 return (
const T*)
Class->GetDefaultObject();
5241 check(
Class->GetDefaultObject()->IsA(T::StaticClass()));
5242 return (T*)
Class->GetDefaultObject();
5255#if !(UE_BUILD_TEST || UE_BUILD_SHIPPING)
5272template <
typename T,
bool bHasStaticStruct = TModels_V<CStaticStructProv
ider, T>>
5277 return T::StaticStruct();
5281template <
typename T>
5286template <
typename T>
5554 static_assert(
sizeof(T) == 0,
"Unsupported for this type. Did you mean to use TBaseStructure?");
5557#define UE_DECLARE_CORE_VARIANT_TYPE(VARIANT, CORE) \
5558template<> struct TBaseStructure<::F##CORE> { COREUOBJECT_API static UScriptStruct* Get(); }; \
5559template<> struct TVariantStructure<::F##VARIANT##f> { COREUOBJECT_API static UScriptStruct* Get(); }; \
5560template<> struct TVariantStructure<::F##VARIANT##d> { COREUOBJECT_API static UScriptStruct* Get(); };
5574#undef UE_DECLARE_CORE_VARIANT_TYPE
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
constexpr T Align(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:18
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
constexpr auto MakeConstArrayView(OtherRangeType &&Other)
Definition ArrayView.h:904
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define checkfSlow(expr, format,...)
Definition AssertionMacros.h:333
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define UE_BLUEPRINT_EVENTGRAPH_FASTCALLS
Definition Build.h:388
#define WITH_EDITOR
Definition Build.h:67
EStructStateFlags
Definition Class.cpp:106
EGetSparseClassDataMethod
Definition Class.h:3753
#define UE_FOREACH_FAKE_VTABLE_FUNC(IndexNameFunctype)
Definition Class.h:1516
EGetByNameFlags
Definition Class.h:2771
#define DISABLE_ABSTRACT_CONSTRUCT
Definition Class.h:1110
COREUOBJECT_API void InitializePrivateStaticClass(class UClass *(*TClass_StaticClassFn)(), class UClass *TClass_Super_StaticClass, class UClass *TClass_PrivateStaticClass, class UClass *TClass_WithinClass_StaticClass, const TCHAR *PackageName, const TCHAR *Name)
Definition Class.cpp:127
COREUOBJECT_API void GetPrivateStaticClassBody(const TCHAR *PackageName, const TCHAR *Name, UClass *&ReturnClass, void(*RegisterNativeFunc)(), uint32 InSize, uint32 InAlignment, EClassFlags InClassFlags, EClassCastFlags InClassCastFlags, const TCHAR *InConfigName, UClass::ClassConstructorType InClassConstructor, UClass::ClassVTableHelperCtorCallerType InClassVTableHelperCtorCaller, FUObjectCppClassStaticFunctions &&InCppClassStaticFunctions, UClass::StaticClassFunctionType InSuperClassFn, UClass::StaticClassFunctionType InWithinClassFn)
Definition Class.cpp:7459
UObject * InternalVTableHelperCtorCaller(FVTableHelper &Helper)
Definition Class.h:4826
FText(* FEnumDisplayNameFn)(int32)
Definition Class.h:2767
EStructPropertyLinkFlags
Definition Class.h:459
EStructFlags
Definition Class.h:1023
@ STRUCT_Native
Definition Class.h:1026
@ STRUCT_Atomic
Definition Class.h:1036
@ STRUCT_HasInstancedReference
Definition Class.h:1031
@ STRUCT_ComputedFlags
Definition Class.h:1102
@ STRUCT_Immutable
Definition Class.h:1039
@ STRUCT_CopyNative
Definition Class.h:1054
@ STRUCT_PostScriptConstruct
Definition Class.h:1081
@ STRUCT_PostSerializeNative
Definition Class.h:1072
@ STRUCT_NetDeltaSerializeNative
Definition Class.h:1078
@ STRUCT_CanEditChange
Definition Class.h:1093
@ STRUCT_RequiredAPI
Definition Class.h:1045
@ STRUCT_NoFlags
Definition Class.h:1025
@ STRUCT_NewerVersionExists
Definition Class.h:1090
@ STRUCT_NetSharedSerialization
Definition Class.h:1084
@ STRUCT_ImportTextItemNative
Definition Class.h:1069
@ STRUCT_IdenticalNative
Definition Class.h:1029
@ STRUCT_SerializeNative
Definition Class.h:1051
@ STRUCT_NoDestructor
Definition Class.h:1060
@ STRUCT_IsPlainOldData
Definition Class.h:1057
@ STRUCT_AddStructReferencedObjects
Definition Class.h:1042
@ STRUCT_ExportTextItemNative
Definition Class.h:1066
@ STRUCT_NoExport
Definition Class.h:1033
@ STRUCT_SerializeFromMismatchedTag
Definition Class.h:1075
@ STRUCT_Inherit
Definition Class.h:1099
@ STRUCT_ZeroConstructor
Definition Class.h:1063
@ STRUCT_Visitor
Definition Class.h:1096
@ STRUCT_NetSerializeNative
Definition Class.h:1048
@ STRUCT_Trashed
Definition Class.h:1087
FWriteScopeLock FUClassFuncScopeWriteLock
Definition Class.h:151
FReadScopeLock FUClassFuncScopeReadLock
Definition Class.h:150
#define UE_VTABLE_FUNC(Index, Name, Functype)
Definition Class.h:1563
EInstancePropertyValueFlags
Definition Class.h:4912
FRWLock FUClassFuncLock
Definition Class.h:152
void InternalConstructor(const FObjectInitializer &X)
Definition Class.h:4816
#define UE_VTABLE_SETFLAG(Index, Name, Functype)
void AddStructReferencedObjectsOrNot(void *A, FReferenceCollector &Collector)
Definition Class.h:1118
EObjectInstancingGraphOptions
Definition Class.h:4928
#define UE_DECLARE_CORE_VARIANT_TYPE(VARIANT, CORE)
Definition Class.h:5557
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define UE_WITH_REMOTE_OBJECT_HANDLE
Definition CoreMiscDefines.h:620
#define UE_NONCOPYABLE(TypeName)
Definition CoreMiscDefines.h:457
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define WITH_METADATA
Definition CoreMiscDefines.h:32
@ ConstEval
Definition CoreMiscDefines.h:161
void(* FNativeFuncPtr)(UObject *Context, FFrame &TheStack, RESULT_DECL)
Definition CoreNative.h:17
AUTORTFM_INFER UE_FORCEINLINE_HINT constexpr auto Invoke(FuncType &&Func, ArgTypes &&... Args) -> decltype(((FuncType &&) Func)((ArgTypes &&) Args...))
Definition Invoke.h:44
FORCEINLINE constexpr void DestructItem(ElementType *Element)
Definition MemoryOps.h:56
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
constexpr int EnumNumSetFlags(Enum Flags)
Definition EnumClassFlags.h:126
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UE_CLOG(Condition, CategoryName, Verbosity, Format,...)
Definition LogMacros.h:298
const T * GetDefault()
Definition UObjectGlobals.h:2155
T TNotNull
Definition NotNull.h:307
const bool
Definition NetworkReplayStreaming.h:178
EClassCastFlags
Definition ObjectMacros.h:333
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
EPropertyFlags
Definition ObjectMacros.h:416
@ CPF_PersistentInstance
A object referenced by the property is duplicated like a component. (Each actor should have an own in...
Definition ObjectMacros.h:468
@ CPF_ExportObject
Object can be exported with actor.
Definition ObjectMacros.h:422
@ CPF_BlueprintVisible
This property can be read by blueprint code.
Definition ObjectMacros.h:421
@ CPF_BlueprintReadOnly
This property cannot be modified by blueprint code.
Definition ObjectMacros.h:423
@ CPF_ContainsInstancedReference
Property contains component references.
Definition ObjectMacros.h:458
@ CPF_ZeroConstructor
memset is fine for construction
Definition ObjectMacros.h:428
@ CPF_NoDestructor
No destructor.
Definition ObjectMacros.h:455
@ CPF_InstancedReference
Property is a component references.
Definition ObjectMacros.h:438
@ CPF_UObjectWrapper
Property was parsed as a wrapper class like TSubclassOf<T>, FScriptInterface etc.,...
Definition ObjectMacros.h:469
@ CPF_HasGetValueTypeHash
This property can generate a meaningful hash value.
Definition ObjectMacros.h:470
@ CPF_ConstParm
This is a constant function parameter.
Definition ObjectMacros.h:420
@ CPF_IsPlainOldData
If this is set, then the property can be memcopied instead of CopyCompleteValue / CopySingleValue.
Definition ObjectMacros.h:449
@ CPF_AdvancedDisplay
The property is advanced and not visible by default in the editor details view.
Definition ObjectMacros.h:461
@ CPF_TObjectPtr
Property is a TObjectPtr<T> instead of a USomething*. Need to differentiate between TObjectclassOf an...
Definition ObjectMacros.h:475
@ CPF_None
Definition ObjectMacros.h:417
uint32 ERenameFlags
Definition ObjectMacros.h:2302
EClassFlags
Definition ObjectMacros.h:199
@ CLASS_Native
Definition ObjectMacros.h:217
#define CPF_ComputedFlags
Definition ObjectMacros.h:502
EStaticConstructor
Definition ObjectMacros.h:174
#define REN_None
Definition ObjectMacros.h:2305
#define USTRUCT_ISCHILDOF_STRUCTARRAY
Definition ObjectMacros.h:37
#define CPF_NativeAccessSpecifiers
Definition ObjectMacros.h:483
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT_FAST_ISCHILDOF_IMPL
Definition ObjectMacros.h:45
EObjectFlags
Definition ObjectMacros.h:552
EEnumFlags
Definition ObjectMacros.h:690
#define UCLASS(...)
Definition ObjectMacros.h:776
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
EPropertyVisitorControlFlow
Definition PropertyVisitor.h:15
#define UE_REQUIRES(...)
Definition Requires.h:86
#define RESULT_DECL
Definition Script.h:92
EFunctionFlags
Definition Script.h:132
@ FUNC_None
Definition Script.h:134
@ FUNC_AllFlags
Definition Script.h:169
EExprToken
Definition Script.h:190
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
decltype(auto) Visit(Func &&Callable, Variants &&... Args)
Definition TVariant.h:271
constexpr TTuple< std::decay_t< Types >... > MakeTuple(Types &&... Args)
Definition Tuple.h:794
UE_FORCEINLINE_HINT uint32 GetTypeHashHelper(const T &V)
Definition TypeHash.h:215
T * GetMutableDefault()
Definition UObjectGlobals.h:2169
EFindFirstObjectOptions
Definition UObjectGlobals.h:496
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
#define Expose_TNameOf(type)
Definition UnrealTypeTraits.h:199
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
if(Failed) console_printf("Failed.\n")
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition AssetRegistryTagsContext.h:98
Definition UnrealType.h:6738
Definition FeedbackContext.h:30
Definition InterpCurvePoint.h:51
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
static COREUOBJECT_API FObjectInitializer & Get()
Definition UObjectGlobals.cpp:5001
Definition OutputDevice.h:133
Definition UnrealType.h:174
Definition ScopeRWLock.h:93
Definition UObjectGlobals.h:2492
Definition Class.cpp:4975
Definition ObjectMacros.h:2402
UE_NONCOPYABLE(FStructBaseChain)
FStructBaseChain()=default
COREUOBJECT_API void ReinitializeBaseChainArray()
Definition Class.cpp:5800
COREUOBJECT_API ~FStructBaseChain()
Definition Class.cpp:5795
bool IsChildOfUsingStructArray(const FStructBaseChain &Parent) const
Definition Class.h:430
Definition UnrealType.h:6306
Definition StructuredArchiveAdapters.h:13
Definition StructuredArchiveSlots.h:144
Definition StructuredArchiveSlots.h:52
Definition StructuredArchive.h:57
Definition ObjectMacros.h:180
Definition ScopeRWLock.h:114
Definition ArrayView.h:139
Definition EnumAsByte.h:22
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
UE_DEPRECATED(5.6, "ClassDefaultObject will be made private in the next release. For general purpose access to the CDO consider using the global GetDefault<>() or GetMutableDefault<>() functions.") TObjectPtr< UObject > ClassDefaultObject
T * GetDefaultObject() const
Definition Class.h:4478
virtual void SerializeDefaultObject(UObject *Object, FArchive &Ar) final
Definition Class.h:4582
TArray< FRepRecord > ClassReps
Definition Class.h:3868
virtual void PostLoadInstance(UObject *InObj)
Definition Class.h:4427
virtual void CreatePersistentUberGraphFrame(UObject *Obj, bool bCreateOnlyIfEmpty=false, bool bSkipSuperClass=false, UClass *OldClass=nullptr) const
Definition Class.h:4464
bool bLayoutChanging
Definition Class.h:3820
UObject * GetDefaultObject(bool bCreateIfNeeded=true) const
Definition Class.h:4373
ClassVTableHelperCtorCallerType ClassVTableHelperCtorCaller
Definition Class.h:3807
UE_FORCEINLINE_HINT EClassFlags GetClassFlags() const
Definition Class.h:4533
UE_FORCEINLINE_HINT bool HasAllCastFlags(EClassCastFlags FlagsToCheck) const
Definition Class.h:4550
COREUOBJECT_API UClass(const FObjectInitializer &ObjectInitializer=FObjectInitializer::Get())
Definition Class.cpp:6553
static T * TryFindTypeSlowSafe(FStringView InShortNameOrPathName, EFindFirstObjectOptions InOptions=EFindFirstObjectOptions::None)
Definition Class.h:4260
void RemoveFunctionFromFunctionMap(UFunction *Function)
Definition Class.h:4139
UE_FORCEINLINE_HINT FTopLevelAssetPath GetClassPathName() const
Definition Class.h:4212
virtual void DestroyPersistentUberGraphFrame(UObject *Obj, bool bSkipSuperClass=false) const
Definition Class.h:4469
UE_FORCEINLINE_HINT bool HasAnyCastFlag(EClassCastFlags FlagToCheck) const
Definition Class.h:4546
UE::GC::FSchemaOwner ReferenceSchema
Definition Class.h:4022
void * SparseClassData
Definition Class.h:3936
virtual bool IsAsset() const override
Definition Class.h:4183
void * GetOrCreateSparseClassData()
Definition Class.h:3954
void SetCppTypeInfoStatic(const FCppClassTypeInfoStatic *InCppTypeInfoStatic)
Definition Class.h:4333
virtual void SetupObjectInitializer(FObjectInitializer &ObjectInitializer) const
Definition Class.h:4441
static T * TryFindTypeSlow(FStringView InShortNameOrPathName, EFindFirstObjectOptions InOptions=EFindFirstObjectOptions::None)
Definition Class.h:4235
const UClass * GetAuthoritativeClass() const
Definition Class.h:4100
bool ShouldUseDynamicSubobjectInstancing() const
Definition Class.h:4693
virtual void InitPropertiesFromCustomList(uint8 *DataPtr, const uint8 *DefaultDataPtr)
Definition Class.h:4436
void AddFunctionToFunctionMap(UFunction *Function, FName FuncName)
Definition Class.h:4118
EClassFlags ClassFlags
Definition Class.h:3823
virtual bool IsNameStableForNetworking() const override
Definition Class.h:4184
UE_DEPRECATED(5.5, "Replace with UE::Reflection::DoesSparseClassDataOverrideArchetype(Class, [](const FProperty*){return true;})") COREUOBJECT_API bool OverridesSparseClassDataArchetype() const
TObjectPtr< UScriptStruct > SparseClassDataStruct
Definition Class.h:3939
virtual UObject * FindArchetype(const UClass *ArchetypeClass, const FName ArchetypeName) const
Definition Class.h:4638
virtual void PostInitInstance(UObject *InObj, FObjectInstancingGraph *InstanceGraph)
Definition Class.h:4422
bool bCooked
Definition Class.h:3817
UE_FORCEINLINE_HINT bool HasAllClassFlags(EClassFlags FlagsToCheck) const
Definition Class.h:4523
UClass * GetSuperClass() const
Definition Class.h:4352
static FTopLevelAssetPath TryConvertShortTypeNameToPathName(FStringView InShortTypeName, ELogVerbosity::Type AmbiguousMessageVerbosity=ELogVerbosity::NoLogging, const TCHAR *AmbiguousClassMessage=nullptr)
Definition Class.h:4284
void AddDefaultSubobject(UObject *NewSubobject, const UClass *BaseClass)
Definition Class.h:4489
int32 GetDefaultsCount()
Definition Class.h:4361
bool CheckDefaultObjectIsValidLowLevelFast(const int32 AlignmentCheck) const
Definition Class.h:4412
ClassConstructorType ClassConstructor
Definition Class.h:3806
virtual uint8 * GetPersistentUberGraphFrame(UObject *Obj, UFunction *FuncToCheck) const
Definition Class.h:4458
FUObjectCppClassStaticFunctions CppClassStaticFunctions
Definition Class.h:3808
virtual bool CanCreateAssetOfClass() const
Definition Class.h:4446
UE_FORCEINLINE_HINT bool HasAnyClassFlags(EClassFlags FlagsToCheck) const
Definition Class.h:4512
void CallAddReferencedObjects(UObject *This, FReferenceCollector &Collector) const
Definition Class.h:3893
EClassCastFlags ClassCastFlags
Definition Class.h:3826
int32 ClassUnique
Definition Class.h:3811
UDelegateFunction(const FObjectInitializer &ObjectInitializer)
Definition Class.h:2685
Definition SharedMutex.h:22
Definition GarbageCollection.h:65
Definition SharedLock.h:22
Definition UniqueLock.h:20
TConstArrayView< FName > GetNames() const
Definition Class.h:3480
int32 Num() const
Definition Class.h:3436
FIteratorEnd end() const
Definition Class.h:3534
FIterator begin() const
Definition Class.h:3526
TArrayView< FName > GetMutableNames()
Definition Class.h:3473
TPair< FName, int64 > operator[](int32 Index) const
Definition Class.h:3446
bool IsValidIndex(int32 Index) const
Definition Class.h:3441
TConstArrayView< int64 > GetValues() const
Definition Class.h:3487
static UE_FORCEINLINE_HINT void GetValueAsString(const EnumType EnumeratorValue, FString &out_StringValue)
Definition Class.h:3272
static FString GetValueOrBitfieldAsString(const IntegralType EnumeratorValue)
Definition Class.h:3311
static bool IsFullEnumName(const TCHAR *InEnumName)
Definition Class.h:2994
void SetEnumDisplayNameFn(FEnumDisplayNameFn InEnumDisplayNameFn)
Definition Class.h:2963
EEnumFlags EnumFlags
Definition Class.h:3544
static UE_FORCEINLINE_HINT void GetValueOrBitfieldAsString(const IntegralType EnumeratorValue, FString &out_StringValue)
Definition Class.h:3331
static FRWLock AllEnumNamesLock
Definition Class.h:3553
static FString GetValueOrBitfieldAsString(const EnumType EnumeratorValue)
Definition Class.h:3286
ECppForm
Definition Class.h:2799
bool HasAnyEnumFlags(EEnumFlags InFlags) const
Definition Class.h:2983
COREUOBJECT_API FName GetNameByValue(int64 InValue) const
Definition Enum.cpp:346
static UE_FORCEINLINE_HINT void GetValueOrBitfieldAsString(const TCHAR *EnumPath, const T EnumeratorValue, FString &out_StringValue)
Definition Class.h:3195
static UE_FORCEINLINE_HINT FString GetValueOrBitfieldAsString(const TCHAR *EnumPath, const TEnumAsByte< T > EnumeratorValue)
Definition Class.h:3189
static FName GetValueAsName(const EnumType EnumeratorValue)
Definition Class.h:3231
static UE_FORCEINLINE_HINT void GetValueAsString(const TCHAR *EnumPath, const T EnumeratorValue, FString &out_StringValue)
Definition Class.h:3175
static FString GetValueAsString(const TCHAR *EnumPath, const T EnumeratorValue)
Definition Class.h:3161
FEnumDisplayNameFn EnumDisplayNameFn
Definition Class.h:3550
static consteval int64 CalculateMaxEnumValue(std::initializer_list< int64 > Values, EEnumFlags InFlags)
Definition Class.h:3371
static UE_FORCEINLINE_HINT void GetValueOrBitfieldAsString(const EnumType EnumeratorValue, FString &out_StringValue)
Definition Class.h:3321
int64 GetValueByIndex(int32 Index) const
Definition Class.h:2859
static UE_FORCEINLINE_HINT void GetDisplayValueAsText(const EnumType EnumeratorValue, FText &out_TextValue)
Definition Class.h:3358
ECppForm GetCppForm() const
Definition Class.h:2973
static UE_FORCEINLINE_HINT void GetValueAsName(const EnumType EnumeratorValue, FName &out_NameValue)
Definition Class.h:3247
static FText GetDisplayValueAsText(const EnumType EnumeratorValue)
Definition Class.h:3342
static FString GetValueAsString(const EnumType EnumeratorValue)
Definition Class.h:3258
int32 GetIndexByValue(int64 InValue) const
Definition Class.h:2846
static UE_FORCEINLINE_HINT FString GetValueAsString(const TEnumAsByte< EnumType > EnumeratorValue)
Definition Class.h:3266
static UE_FORCEINLINE_HINT FString GetValueOrBitfieldAsString(const TEnumAsByte< EnumType > EnumeratorValue)
Definition Class.h:3301
static FString GetValueOrBitfieldAsString(const TCHAR *EnumPath, const T EnumeratorValue)
Definition Class.h:3181
COREUOBJECT_API FString GetValueOrBitfieldAsString(int64 InValue) const
Definition Enum.cpp:811
int32 NumEnums() const
Definition Class.h:3080
COREUOBJECT_API FString GetNameStringByValue(int64 InValue) const
Definition Enum.cpp:780
static UE_FORCEINLINE_HINT FName GetValueAsName(const TEnumAsByte< EnumType > EnumeratorValue)
Definition Class.h:3241
static COREUOBJECT_API FString GenerateEnumPrefix(const TArray< TPair< FName, int64 > > &InNames, FName InEnumName)
Find the longest common prefix of all enum names in the provided list.
FName EnumPackage
Definition Class.h:3547
static UE_FORCEINLINE_HINT FText GetDisplayValueAsText(const TCHAR *EnumPath, const TEnumAsByte< T > EnumeratorValue)
Definition Class.h:3214
static UE_FORCEINLINE_HINT FText GetDisplayValueAsText(const TEnumAsByte< EnumType > EnumeratorValue)
Definition Class.h:3352
static TMap< FName, TMap< FName, UEnum * > > AllEnumNames
Definition Class.h:3556
static FText GetDisplayValueAsText(const TCHAR *EnumPath, const T EnumeratorValue)
Definition Class.h:3206
void SetEnumFlags(EEnumFlags FlagsToSet)
Definition Class.h:2978
static UE_FORCEINLINE_HINT FString GetValueAsString(const TCHAR *EnumPath, const TEnumAsByte< T > EnumeratorValue)
Definition Class.h:3169
COREUOBJECT_API FText GetDisplayNameTextByValue(int64 InValue) const
Definition Enum.cpp:899
ECppForm CppForm
Definition Class.h:3541
static UE_FORCEINLINE_HINT void GetDisplayValueAsText(const TCHAR *EnumPath, const T EnumeratorValue, FText &out_TextValue)
Definition Class.h:3220
UClass FieldTypeClass
Definition Class.h:186
UField BaseFieldClass
Definition Class.h:185
static uint64 GetDefaultIgnoredSignatureCompatibilityFlags()
Definition Class.h:2643
UE_FORCEINLINE_HINT UClass * GetOuterUClassUnchecked() const
Definition Class.h:2610
UE_FORCEINLINE_HINT UClass * GetOuterUClass() const
Definition Class.h:2599
uint16 RPCId
Definition Class.h:2493
UFunction(const FObjectInitializer &ObjectInitializer)
Definition Class.h:2548
uint8 NumParms
Definition Class.h:2487
UE_FORCEINLINE_HINT void SetNativeFunc(FNativeFuncPtr InFunc)
Definition Class.h:2533
UE_FORCEINLINE_HINT bool HasAllFunctionFlags(EFunctionFlags FlagsToCheck) const
Definition Class.h:2635
UFunction * GetSuperFunction() const
Definition Class.h:5188
UE_FORCEINLINE_HINT bool HasAnyFunctionFlags(EFunctionFlags FlagsToCheck) const
Definition Class.h:2624
uint16 ParmsSize
Definition Class.h:2489
uint16 ReturnValueOffset
Definition Class.h:2491
FProperty * FirstPropertyToInit
Definition Class.h:2498
UE_FORCEINLINE_HINT FNativeFuncPtr GetNativeFunc() const
Definition Class.h:2523
uint16 RPCResponseId
Definition Class.h:2495
virtual UStruct * GetInheritanceSuper() const override
Definition Class.h:2589
EFunctionFlags FunctionFlags
Definition Class.h:2482
Definition UObjectBaseUtility.h:45
bool IsA() const
Definition UObjectBaseUtility.h:640
bool IsA(OtherClassType SomeBase) const
Definition UObjectBaseUtility.h:619
FORCEINLINE UClass * GetClass() const
Definition UObjectBase.h:217
COREUOBJECT_API UFunction * FindFunctionChecked(FName InName) const
Definition ScriptCore.cpp:1495
bool Implements() const
Definition Class.h:5202
COREUOBJECT_API UFunction * FindFunction(FName InName) const
Definition ScriptCore.cpp:1490
Definition PropertyWrapper.h:23
void ClearCppStructOps()
Definition Class.h:2299
ICppStructOps * GetCppStructOps() const
Definition Class.h:2292
bool ShouldSerializeAtomically(FArchive &Ar) const
Definition Class.h:2319
EStructFlags StructFlags
Definition Class.h:2224
bool UseNativeSerialization() const
Definition Class.h:2332
bool bPrepareCppStructOpsCompleted
Definition Class.h:2228
virtual COREUOBJECT_API void Serialize(FStructuredArchive::FRecord Record) override
static void DeferCppStructOps(FTopLevelAssetPath Target)
Definition Class.h:2276
ICppStructOps * CppStructOps
Definition Class.h:2230
COREUOBJECT_API UScriptStruct(EStaticConstructor, int32 InSize, int32 InAlignment, EObjectFlags InFlags)
Definition Class.cpp:3063
UE_FORCEINLINE_HINT bool HasDefaults() const
Definition Class.h:2310
USparseDelegateFunction(const FObjectInitializer &ObjectInitializer)
Definition Class.h:2714
FProperty * PropertyLink
Definition Class.h:530
UE_FORCEINLINE_HINT int32 GetPropertiesSize() const
Definition Class.h:763
virtual const TCHAR * GetPrefixCPP() const
Definition Class.h:760
FProperty * PostConstructLink
Definition Class.h:536
void SetUnresolvedScriptProperties(FUnresolvedScriptPropertiesArray &InUnresolvedProperties)
Definition Class.h:903
UE_FORCEINLINE_HINT int32 GetStructureSize() const
Definition Class.h:775
FSuperStructIterator GetSuperStructIterator()
Definition Class.h:816
void SetPropertiesSize(int32 NewSize)
Definition Class.h:781
FProperty * RefLink
Definition Class.h:532
virtual bool ArePropertyGuidsAvailable() const
Definition Class.h:979
void DeleteUnresolvedScriptProperties()
Definition Class.h:913
virtual UStruct * GetInheritanceSuper() const
Definition Class.h:659
virtual COREUOBJECT_API void Serialize(FStructuredArchive::FRecord Record) override
UE_FORCEINLINE_HINT int32 GetMinAlignment() const
Definition Class.h:769
bool IsChildOf() const
Definition Class.h:788
UStruct * GetSuperStruct() const
Definition Class.h:827
virtual void SerializeTaggedProperties(FArchive &Ar, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults, const UObject *BreakRecursionIfFullyLoad=nullptr) const final
Definition Class.h:712
virtual void SerializeBin(FArchive &Ar, void *Data) const final
Definition Class.h:678
FConstSuperStructIterator GetSuperStructIterator() const
Definition Class.h:821
FProperty * DestructorLink
Definition Class.h:534
UStruct(const FObjectInitializer &ObjectInitializer)
Definition Class.h:576
virtual FGuid FindPropertyGuidFromName(const FName InName) const
Definition Class.h:976
virtual FProperty * CustomFindProperty(const FName InName) const
Definition Class.h:750
virtual bool IsStructTrashed() const
Definition Class.h:845
UE_REWRITE constexpr auto MaxElement(RangeType &&Range) -> decltype(AlgoImpl::MaxElementBy(Range, FIdentityFunctor(), TLess<>()))
Definition MaxElement.h:40
Type
Definition Class.h:3734
@ IncludeSuper
Definition Class.h:3736
@ ExcludeSuper
Definition Class.h:3735
Type
Definition LogVerbosity.h:17
@ NoLogging
Definition LogVerbosity.h:19
Definition FieldSystemNoiseAlgo.cpp:6
FUniformParams Params
Definition MeshPaintVirtualTexture.cpp:162
Definition CoreGlobals.cpp:268
constexpr const TStructOpsFakeVTable TStructOpsFakeVTableInstance< CppStruct >
Definition Class.h:1692
bool FindInnerPropertyInstance(FName PropertyName, const void *Data, const FProperty *&OutProp, const void *&OutData)
Definition Class.h:1403
uint32 GetStructTypeHash(const void *Src)
Definition Class.h:1457
EStructOpsFakeVTableFlags
Definition Class.h:1549
UE_VTABLE_ENUM(Index, Name, Functype)
void PostSerialize(const FArchive &Ar, void *Data)
Definition Class.h:1300
bool ImportTextItem(const TCHAR *&Buffer, void *Data, int32 PortFlags, UObject *OwnerObject, FOutputDevice *ErrorText)
Definition Class.h:1396
constexpr FCapabilities GetCapabilities()
Definition Class.h:1172
void * ResolveVisitedPathInfo(void *Data, const FPropertyVisitorInfo &Info)
Definition Class.h:1511
bool NetDeltaSerialize(FNetDeltaSerializeInfo &DeltaParms, void *Data)
Definition Class.h:1314
bool Identical(const void *A, const void *B, uint32 PortFlags, bool &bOutResult)
Definition Class.h:1353
bool ExportTextItem(FString &ValueStr, const void *PropertyValue, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope)
Definition Class.h:1368
bool SerializeArchive(FArchive &Ar, void *Data, UStruct *DefaultsStruct, const void *Defaults)
Definition Class.h:1272
void ConstructForTests(void *Dest)
Definition Class.h:1242
bool NetSerialize(FArchive &Ar, UPackageMap *Map, bool &bOutSuccess, void *Data)
Definition Class.h:1307
bool SerializeSlot(FStructuredArchive::FSlot Slot, void *Data, UStruct *DefaultsStruct, const void *Defaults)
Definition Class.h:1286
void PostScriptConstruct(void *Data)
Definition Class.h:1321
void(*)(void *A, FReferenceCollector &Collector) AddStructReferencedObjects()
Definition Class.h:1410
void Construct(void *Dest)
Definition Class.h:1220
constexpr EStructOpsFakeVTableFlags GetStructOpsFakeVTableFlags()
Definition Class.h:1578
void InitializeIntrusiveUnsetOptionalValue(void *Data)
Definition Class.h:1464
EPropertyVisitorControlFlow Visit(FPropertyVisitorContext &Context, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &Context)> InFunc)
Definition Class.h:1503
void Destruct(void *Dest)
Definition Class.h:1265
void GetPreloadDependencies(void *Data, TArray< UObject * > &OutDeps)
Definition Class.h:1328
constexpr const TStructOpsFakeVTable< Funcs... > TStructOpsFakeVTableInstance
Definition Class.h:1683
void ClearIntrusiveOptionalValue(void *Data)
Definition Class.h:1478
bool SerializeFromMismatchedTag(FPropertyTag const &Tag, FArchive &Ar, void *Data)
Definition Class.h:1417
bool StructuredSerializeFromMismatchedTag(FPropertyTag const &Tag, FStructuredArchive::FSlot Slot, void *Data)
Definition Class.h:1437
bool IsIntrusiveOptionalValueSet(const void *Data)
Definition Class.h:1471
Definition PackageReader.cpp:44
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition GetTypeHashable.h:11
Definition StructuredArchiveNameHelpers.h:10
Definition AssetBundleData.h:82
Definition AssetData.h:162
const char * FuncNameUTF8
Definition Class.h:3743
bool bIsAbstract
Definition Class.h:3655
virtual bool IsAbstract() const override
Definition Class.h:3672
FCppClassTypeInfo(const FCppClassTypeInfo &)=delete
constexpr FCppClassTypeInfo(const FCppClassTypeInfoStatic *InInfo)
Definition Class.h:3662
FCppClassTypeInfo & operator=(const FCppClassTypeInfo &)=delete
@ IsAbstract
Definition Class.h:3629
Definition UnrealType.h:6698
Definition FallbackStruct.h:7
Definition FrameRate.h:21
Definition FrameTime.h:16
friend COREUOBJECT_API FArchive & operator<<(FArchive &Ar, FImplementedInterface &A)
Definition Class.cpp:6367
TObjectPtr< UClass > Class
Definition Class.h:3686
FImplementedInterface()
Definition Class.h:3692
FImplementedInterface(UClass *InClass, int32 InOffset, bool InImplementedByK2)
Definition Class.h:3697
int32 PointerOffset
Definition Class.h:3688
bool bImplementedByK2
Definition Class.h:3690
static constexpr UE_FORCEINLINE_HINT bool IsPowerOfTwo(T Value)
Definition UnrealMathUtility.h:519
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
FNativeFunctionLookup(FName InName, FNativeFuncPtr InPointer)
Definition Class.h:3724
FNativeFuncPtr Pointer
Definition Class.h:3715
FName Name
Definition Class.h:3714
void SetLoadingObject(bool bIsLoading)
Definition Class.h:5075
void ForEachObjectInstance(Predicate Pred)
Definition Class.h:5040
const UObject * GetDestinationRoot() const
Definition Class.h:4975
bool IsPropertyInSubobjectExclusionList(const FProperty *Property) const
Definition Class.h:5091
void EnableSubobjectInstancing(bool bEnabled)
Definition Class.h:5052
bool HasDestinationRoot() const
Definition Class.h:4967
bool IsSubobjectInstancingEnabled() const
Definition Class.h:5067
void AddPropertyToSubobjectExclusionList(const FProperty *Property)
Definition Class.h:5083
Definition RemoteObjectPathName.h:36
Definition PolyglotTextData.h:17
Definition PrimaryAssetId.h:126
Definition PrimaryAssetId.h:28
Definition PropertyTag.h:38
Definition PropertyVisitor.h:268
Definition PropertyVisitor.h:249
Definition PropertyVisitor.h:32
Definition PropertyVisitor.h:97
Definition RandomStream.h:20
Definition RemoteObjectTransfer.h:22
Definition RemoteObjectTransfer.h:30
Definition RemoteObjectTypes.h:212
Definition RemoteObjectPathName.h:73
Definition RemoteObjectTransfer.h:173
Definition RemoteObjectPathName.h:11
Definition RemoteObjectTypes.h:49
int32 Index
Definition Class.h:166
FRepRecord(FProperty *InProperty, int32 InIndex)
Definition Class.h:167
FProperty * Property
Definition Class.h:165
Definition SoftObjectPath.h:539
Definition SoftObjectPath.h:56
static COREUOBJECT_API bool ArePropertiesTheSame(const FProperty *A, const FProperty *B, bool bCheckPropertiesNames)
Definition Class.cpp:7707
static COREUOBJECT_API int32 AttemptToFindUninitializedScriptStructMembers()
Definition Class.cpp:4240
static COREUOBJECT_API bool TheSameLayout(const UStruct *StructA, const UStruct *StructB, bool bCheckPropertiesNames=false)
Definition Class.cpp:7742
static COREUOBJECT_API UStruct * FindStructureInPackageChecked(const TCHAR *StructName, const TCHAR *PackageName)
Definition Class.cpp:7780
Definition TopLevelAssetPath.h:38
Definition ObjectMacros.h:2059
AddReferencedObjectsType GetAddReferencedObjects() const
Definition ObjectMacros.h:2114
Definition UObjectThreadContext.h:140
virtual bool IsAbstract() const =0
static FORCEINLINE T * NoAccessTrackingGet(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:867
static UScriptStruct * Get()
Definition Class.h:5275
static COREUOBJECT_API UScriptStruct * Get()
static UE_FORCEINLINE_HINT int32 Atoi(const CharType *String)
Definition CString.h:1173
static UE_FORCEINLINE_HINT float Atof(const CharType *String)
Definition CString.h:1185
static UE_FORCEINLINE_HINT const CharType * Strstr(const CharType *String, const CharType *Find)
Definition CString.h:1066
@ IsAbstract
Definition Class.h:3640
Definition FieldPath.h:283
Definition IsAbstract.h:10
Definition IsEnumClass.h:25
Definition IsPODType.h:12
Definition IsUECoreType.h:40
Definition IsUECoreType.h:19
Definition UnrealTypeTraits.h:172
Definition ObjectPtrLinkedListBuilder.h:26
Definition ObjectPtrLinkedListIterator.h:10
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition StructOpsTypeTraits.h:11
@ WithNetSerializer
Definition StructOpsTypeTraits.h:26
@ WithSerializer
Definition StructOpsTypeTraits.h:23
Definition StructOpsTypeTraits.h:46
Definition TypeCompatibleBytes.h:24
Definition UObjectGlobals.h:4248
bool IsAbstract
Definition Class.h:1160
bool IsUECoreVariant
Definition Class.h:1150
bool HasFindInnerPropertyInstance
Definition Class.h:1161
bool HasVisitor
Definition Class.h:1166
bool IsUECoreType
Definition Class.h:1149
bool ClearOnFinishDestroy
Definition Class.h:1162
bool HasIdentical
Definition Class.h:1152
bool HasZeroConstructor
Definition Class.h:1139
bool HasDestructor
Definition Class.h:1140
bool HasExportTextItem
Definition Class.h:1153
bool HasPostSerialize
Definition Class.h:1143
bool HasGetPreloadDependencies
Definition Class.h:1167
bool HasGetTypeHash
Definition Class.h:1158
bool IsPlainOldData
Definition Class.h:1148
bool HasNetSharedSerialization
Definition Class.h:1145
bool HasNetSerializer
Definition Class.h:1144
bool HasAddStructReferencedObjects
Definition Class.h:1155
bool IsIntrusiveOptionalSafeForGC
Definition Class.h:1168
bool HasSerializer
Definition Class.h:1141
bool HasNetDeltaSerializer
Definition Class.h:1146
bool HasPostScriptConstruct
Definition Class.h:1147
EPropertyFlags ComputedPropertyFlags
Definition Class.h:1136
bool HasNoopConstructor
Definition Class.h:1138
EPropertyObjectReferenceType HasSerializerObjectReferences
Definition Class.h:1137
bool HasImportTextItem
Definition Class.h:1154
bool HasCopy
Definition Class.h:1151
bool HasStructuredSerializeFromMismatchedTag
Definition Class.h:1157
bool HasStructuredSerializer
Definition Class.h:1142
bool HasSerializeFromMismatchedTag
Definition Class.h:1156
bool HasIntrusiveUnsetOptionalState
Definition Class.h:1159
FCapabilities Capabilities
Definition Class.h:1601
void(* HandlingFunctions[0])()
Definition Class.h:1608
UE_REWRITE auto GetHandlingFunc() const
Definition Class.h:1613
EStructOpsFakeVTableFlags Flags
Definition Class.h:1598
TTuple< decltype(Funcs)... > Functions
Definition Class.h:1660
Definition IntVector.h:670
void operator++()
Definition Class.h:3498
const int64 * Values
Definition Class.h:3523
bool operator==(FIteratorEnd) const
Definition Class.h:3503
bool operator!=(FIteratorEnd) const
Definition Class.h:3509
int32 Num
Definition Class.h:3521
const FName * Names
Definition Class.h:3522
TPair< FName, int64 > operator*() const
Definition Class.h:3515
const FCapabilities & GetCapabilities() const
Definition Class.h:1741
bool HasImportTextItem() const
Definition Class.h:1972
UE_FORCEINLINE_HINT int32 GetSize() const
Definition Class.h:1785
void PostSerialize(const FArchive &Ar, void *Data)
Definition Class.h:1840
bool IsPlainOldData() const
Definition Class.h:1909
void Construct(void *Dest)
Definition Class.h:1759
bool HasIdentical() const
Definition Class.h:1942
bool HasDestructor() const
Definition Class.h:1773
bool Serialize(FStructuredArchive::FSlot Slot, void *Data, UStruct *DefaultsStruct, const void *Defaults)
Definition Class.h:1828
bool ImportTextItem(const TCHAR *&Buffer, void *Data, int32 PortFlags, UObject *OwnerObject, FOutputDevice *ErrorText)
Definition Class.h:1981
UE_FORCEINLINE_HINT int32 GetAlignment() const
Definition Class.h:1791
void(*)(void *A, FReferenceCollector &Collector) PointerToAddStructReferencedObjectsType
Definition Class.h:2012
bool IsUECoreVariant() const
Definition Class.h:1921
void GetPreloadDependencies(void *Data, TArray< UObject * > &OutDeps)
Definition Class.h:1900
bool IsUECoreType() const
Definition Class.h:1915
bool Serialize(FArchive &Ar, void *Data, UStruct *DefaultsStruct, const void *Defaults)
Definition Class.h:1824
bool HasPostScriptConstruct() const
Definition Class.h:1882
bool StructuredSerializeFromMismatchedTag(FPropertyTag const &Tag, FStructuredArchive::FSlot Slot, void *Data)
Definition Class.h:2040
bool HasNetSerializer() const
Definition Class.h:1846
bool HasExportTextItem() const
Definition Class.h:1957
bool HasNoopConstructor() const
Definition Class.h:1747
bool HasAddStructReferencedObjects() const
Definition Class.h:1997
bool HasGetPreloadDependencies() const
Definition Class.h:1894
bool HasFindInnerPropertyInstance() const
Definition Class.h:1986
bool HasStructuredSerializeFromMismatchedTag() const
Definition Class.h:2026
bool SerializeFromMismatchedTag(FPropertyTag const &Tag, FArchive &Ar, void *Data)
Definition Class.h:2035
bool HasPostSerialize() const
Definition Class.h:1834
bool HasSerializer() const
Definition Class.h:1797
bool HasStructuredSerializer() const
Definition Class.h:1803
bool HasSerializeFromMismatchedTag() const
Definition Class.h:2021
bool HasClearOnFinishDestroy() const
Definition Class.h:2077
bool HasVisitor() const
Definition Class.h:2130
uint32 GetStructTypeHash(const void *Src)
Definition Class.h:2052
bool ExportTextItem(FString &ValueStr, const void *PropertyValue, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope)
Definition Class.h:1966
PointerToAddStructReferencedObjectsType AddStructReferencedObjects()
Definition Class.h:2015
void Destruct(void *Dest)
Definition Class.h:1779
void PostScriptConstruct(void *Data)
Definition Class.h:1888
void InitializeIntrusiveUnsetOptionalValue(void *Data) const
Definition Class.h:2089
bool IsIntrusiveOptionalValueSet(const void *Data) const
Definition Class.h:2095
bool NetDeltaSerialize(FNetDeltaSerializeInfo &DeltaParms, void *Data)
Definition Class.h:1876
bool FindInnerPropertyInstance(FName PropertyName, const void *Data, const FProperty *&OutProp, const void *&OutData) const
Definition Class.h:1991
bool HasNetSharedSerialization() const
Definition Class.h:1852
bool HasSerializerObjectReferences(EPropertyObjectReferenceType Type) const
Definition Class.h:2003
constexpr ICppStructOps(int32 InSize, int32 InAlignment)
Definition Class.h:1734
bool Identical(const void *A, const void *B, uint32 PortFlags, bool &bOutResult)
Definition Class.h:1951
bool NetSerialize(FArchive &Ar, UPackageMap *Map, bool &bOutSuccess, void *Data)
Definition Class.h:1861
bool HasIntrusiveUnsetOptionalState() const
Definition Class.h:2083
bool IsAbstract() const
Definition Class.h:2071
void ConstructForTests(void *Dest)
Definition Class.h:1766
void ClearIntrusiveOptionalValue(void *Data) const
Definition Class.h:2101
EPropertyFlags GetComputedPropertyFlags() const
Definition Class.h:2065
bool HasGetTypeHash() const
Definition Class.h:2046
bool HasZeroConstructor() const
Definition Class.h:1753
EPropertyVisitorControlFlow Visit(FPropertyVisitorContext &Context, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &Context)> InFunc) const
Definition Class.h:2136
bool HasCopy() const
Definition Class.h:1927
const UE::CoreUObject::Private::FStructOpsFakeVTable * FakeVPtr
Definition Class.h:1728
void * ResolveVisitedPathInfo(void *Data, const FPropertyVisitorInfo &Info) const
Definition Class.h:2148
bool IsIntrusiveOptionalSafeForGC() const
Definition Class.h:2110
bool HasNetDeltaSerializer() const
Definition Class.h:1867
bool Copy(void *Dest, void const *Src, int32 ArrayDim)
Definition Class.h:1936
~TAutoCppStructOps()
Definition Class.h:2198
FTopLevelAssetPath Name
Definition Class.h:2202
TAutoCppStructOps(FTopLevelAssetPath InName)
Definition Class.h:2192
TStructOpsTypeTraits< CPPSTRUCT > TTraits
Definition Class.h:2171
constexpr TCppStructOps()
Definition Class.h:2172
Definition NoDestroy.h:18