UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UStruct Class Reference

#include <Class.h>

+ Inheritance diagram for UStruct:

Public Types

typedef TArray< TPair< TFieldPath< FField >, int32 > > FUnresolvedScriptPropertiesArray
 
using FSuperStructIterator = TObjectPtrLinkedListIterator< UStruct, &UStruct::SuperStruct, true >
 
using FConstSuperStructIterator = TObjectPtrLinkedListIteratorConst< UStruct, &UStruct::SuperStruct, true >
 
- Public Types inherited from UField
typedef UField BaseFieldClass
 
typedef UClass FieldTypeClass
 
using FLinkedListBuilder = TObjectPtrLinkedListBuilder< UField >
 
- Public Types inherited from UObject
enum class  ENetFields_Private { NETFIELD_REP_START = 0 , NETFIELD_REP_END = -1 }
 
typedef UObject WithinClass
 

Public Member Functions

 UStruct (const FObjectInitializer &ObjectInitializer)
 
COREUOBJECT_API UStruct (EStaticConstructor, int32 InSize, int32 InAlignment, EObjectFlags InFlags)
 
COREUOBJECT_API UStruct (UStruct *InSuperStruct, SIZE_T ParamsSize=0, SIZE_T Alignment=0)
 
COREUOBJECT_API UStruct (const FObjectInitializer &ObjectInitializer, UStruct *InSuperStruct, SIZE_T ParamsSize=0, SIZE_T Alignment=0)
 
virtual COREUOBJECT_API ~UStruct ()
 
virtual COREUOBJECT_API void Serialize (FArchive &Ar) override
 
virtual COREUOBJECT_API void Serialize (FStructuredArchive::FRecord Record) override
 
virtual COREUOBJECT_API void PostLoad () override
 
virtual COREUOBJECT_API void FinishDestroy () override
 
virtual COREUOBJECT_API void RegisterDependencies () override
 
virtual COREUOBJECT_API void GetPreloadDependencies (TArray< UObject * > &OutDeps) override
 
virtual COREUOBJECT_API void TagSubobjects (EObjectFlags NewFlags) override
 
virtual COREUOBJECT_API void AddCppProperty (FProperty *Property) override
 
COREUOBJECT_API FTopLevelAssetPath GetStructPathName () const
 
COREUOBJECT_API FPropertyFindPropertyByName (FName InName) const
 
UE_INTERNAL COREUOBJECT_API FPropertyFindPropertyByOffset (int32 Offset) const
 
COREUOBJECT_API void InstanceSubobjectTemplates (TNotNull< void * > Data, const void *DefaultData, const UStruct *DefaultStruct, TNotNull< UObject * > Owner, FObjectInstancingGraph *InstanceGraph)
 
virtual UStructGetInheritanceSuper () const
 
COREUOBJECT_API void StaticLink (bool bRelinkExistingProperties=false)
 
virtual COREUOBJECT_API void Link (FArchive &Ar, bool bRelinkExistingProperties)
 
virtual void SerializeBin (FArchive &Ar, void *Data) const final
 
virtual COREUOBJECT_API void SerializeBin (FStructuredArchive::FSlot Slot, void *Data) const
 
COREUOBJECT_API void SerializeBinEx (FStructuredArchive::FSlot Slot, void *Data, void const *DefaultData, UStruct *DefaultStruct) const
 
virtual void SerializeTaggedProperties (FArchive &Ar, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults, const UObject *BreakRecursionIfFullyLoad=nullptr) const final
 
virtual COREUOBJECT_API void SerializeTaggedProperties (FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults, const UObject *BreakRecursionIfFullyLoad=nullptr) const
 
virtual COREUOBJECT_API void PreloadChildren (FArchive &Ar)
 
virtual COREUOBJECT_API void InitializeStruct (void *Dest, int32 ArrayDim=1) const
 
virtual COREUOBJECT_API void DestroyStruct (void *Dest, int32 ArrayDim=1) const
 
virtual FPropertyCustomFindProperty (const FName InName) const
 
virtual COREUOBJECT_API EExprToken SerializeExpr (int32 &iCode, FArchive &Ar)
 
virtual const TCHARGetPrefixCPP () const
 
UE_FORCEINLINE_HINT int32 GetPropertiesSize () const
 
UE_FORCEINLINE_HINT int32 GetMinAlignment () const
 
UE_FORCEINLINE_HINT int32 GetStructureSize () const
 
void SetPropertiesSize (int32 NewSize)
 
template<class T >
bool IsChildOf () const
 
COREUOBJECT_API bool IsChildOf (const UStruct *SomeBase) const
 
FSuperStructIterator GetSuperStructIterator ()
 
FConstSuperStructIterator GetSuperStructIterator () const
 
UStructGetSuperStruct () const
 
virtual COREUOBJECT_API void SetSuperStruct (UStruct *NewSuperStruct)
 
virtual COREUOBJECT_API FString GetAuthoredNameForField (const UField *Field) const
 
virtual COREUOBJECT_API FString GetAuthoredNameForField (const FField *Field) const
 
virtual bool IsStructTrashed () const
 
COREUOBJECT_API void DestroyChildPropertiesAndResetPropertyLinks ()
 
void SetUnresolvedScriptProperties (FUnresolvedScriptPropertiesArray &InUnresolvedProperties)
 
void DeleteUnresolvedScriptProperties ()
 
COREUOBJECT_API void CollectBytecodeReferencedObjects (TArray< UObject * > &OutReferencedObjects)
 
COREUOBJECT_API void CollectPropertyReferencedObjects (TArray< UObject * > &OutReferencedObjects)
 
COREUOBJECT_API void CollectBytecodeAndPropertyReferencedObjects ()
 
COREUOBJECT_API void CollectBytecodeAndPropertyReferencedObjectsRecursively ()
 
COREUOBJECT_API EPropertyVisitorControlFlow Visit (void *Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorPath &, const FPropertyVisitorData &)> InFunc) const
 
COREUOBJECT_API EPropertyVisitorControlFlow Visit (void *Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc, FPropertyVisitorContext::EScope InScope=FPropertyVisitorContext::EScope::All) const
 
virtual COREUOBJECT_API EPropertyVisitorControlFlow Visit (FPropertyVisitorContext &Context, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc) const
 
virtual COREUOBJECT_API voidResolveVisitedPathInfo (void *Data, const FPropertyVisitorInfo &Info) const
 
- Public Member Functions inherited from UField
 UField (const FObjectInitializer &ObjectInitializer)
 
 UField (EStaticConstructor, EObjectFlags InFlags)
 
 ~UField ()=default
 
virtual COREUOBJECT_API bool NeedsLoadForClient () const override
 
virtual COREUOBJECT_API bool NeedsLoadForServer () const override
 
virtual COREUOBJECT_API void Bind ()
 
COREUOBJECT_API UClassGetOwnerClass () const
 
COREUOBJECT_API UStructGetOwnerStruct () const
 
COREUOBJECT_API FString GetAuthoredName () const
 
COREUOBJECT_API bool HasAnyCastFlags (const uint64 InCastFlags) const
 
COREUOBJECT_API bool HasAllCastFlags (const uint64 InCastFlags) const
 
- Public Member Functions inherited from UObject
COREUOBJECT_API UObject ()
 
COREUOBJECT_API UObject (const FObjectInitializer &ObjectInitializer)
 
COREUOBJECT_API UObject (EStaticConstructor, EObjectFlags InFlags)
 
COREUOBJECT_API UObject (FVTableHelper &Helper)
 
COREUOBJECT_API UObjectCreateDefaultSubobject (FName SubobjectFName, UClass *ReturnType, UClass *ClassToCreateByDefault, bool bIsRequired, bool bIsTransient)
 
template<class TReturnType >
TReturnTypeCreateEditorOnlyDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
template<class TReturnType , class TClassToConstructByDefault >
TReturnTypeCreateOptionalDefaultSubobject (FName SubobjectName, bool bTransient=false)
 
COREUOBJECT_API void GetDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects)
 
COREUOBJECT_API UObjectGetDefaultSubobjectByName (FName ToFind)
 
virtual COREUOBJECT_API void PostInitProperties ()
 
virtual COREUOBJECT_API void PostReinitProperties ()
 
virtual void PostCDOContruct ()
 
virtual COREUOBJECT_API void PreSaveRoot (FObjectPreSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PostSaveRoot (FObjectPostSaveRootContext ObjectSaveContext)
 
virtual COREUOBJECT_API void PreSave (FObjectPreSaveContext SaveContext)
 
virtual COREUOBJECT_API void CollectSaveOverrides (FObjectCollectSaveOverridesContext SaveContext)
 
UE_FORCEINLINE_HINT bool Modify (bool bAlwaysMarkDirty=true)
 
UE_FORCEINLINE_HINT bool IsCapturingAsRootObjectForTransaction () const
 
virtual bool ResolveSubobject (const TCHAR *SubObjectPath, UObject *&OutObject, bool bLoadIfExists)
 
virtual bool IsReadyForAsyncPostLoad () const
 
virtual COREUOBJECT_API void PostLoadSubobjects (FObjectInstancingGraph *OuterInstanceGraph)
 
virtual COREUOBJECT_API void BeginDestroy ()
 
virtual bool IsReadyForFinishDestroy ()
 
virtual void ShutdownAfterError ()
 
virtual void PostInterpChange (FProperty *PropertyThatChanged)
 
virtual COREUOBJECT_API void PostRename (UObject *OldOuter, const FName OldName)
 
virtual void PreDuplicate (FObjectDuplicationParameters &DupParams)
 
virtual void PostDuplicate (bool bDuplicateForPIE)
 
virtual void PostDuplicate (EDuplicateMode::Type DuplicateMode)
 
virtual COREUOBJECT_API bool NeedsLoadForTargetPlatform (const class ITargetPlatform *TargetPlatform) const
 
virtual bool NeedsLoadForEditorGame () const
 
virtual bool IsEditorOnly () const
 
virtual bool HasNonEditorOnlyReferences () const
 
virtual bool IsPostLoadThreadSafe () const
 
virtual COREUOBJECT_API bool IsDestructionThreadSafe () const
 
virtual void GetPrestreamPackages (TArray< UObject * > &OutPrestream)
 
virtual void ExportCustomProperties (FOutputDevice &Out, uint32 Indent)
 
virtual void ImportCustomProperties (const TCHAR *SourceText, FFeedbackContext *Warn)
 
virtual void PostEditImport ()
 
virtual void PostReloadConfig (class FProperty *PropertyThatWasLoaded)
 
virtual COREUOBJECT_API bool Rename (const TCHAR *NewName=nullptr, UObject *NewOuter=nullptr, ERenameFlags Flags=REN_None)
 
virtual FString GetDesc ()
 
COREUOBJECT_API UScriptStructGetSparseClassDataStruct () const
 
virtual bool GetNativePropertyValues (TMap< FString, FString > &out_PropertyValues, uint32 ExportFlags=0) const
 
virtual COREUOBJECT_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize)
 
SIZE_T GetResourceSizeBytes (EResourceSizeMode::Type Mode)
 
virtual FName GetExporterName (void)
 
COREUOBJECT_API void CallAddReferencedObjects (FReferenceCollector &Collector)
 
virtual FRestoreForUObjectOverwriteGetRestoreForUObjectOverwrite ()
 
virtual bool AreNativePropertiesIdenticalTo (UObject *Other) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context) const
 
virtual COREUOBJECT_API void GetAssetRegistryTags (TArray< FAssetRegistryTag > &OutTags) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetData &Out) const
 
COREUOBJECT_API void GetAssetRegistryTags (FAssetRegistryTagsContext Context, FAssetData &Out) const
 
virtual COREUOBJECT_API bool IsAsset () const
 
virtual COREUOBJECT_API FPrimaryAssetId GetPrimaryAssetId () const
 
virtual COREUOBJECT_API bool IsLocalizedResource () const
 
virtual COREUOBJECT_API bool IsSafeForRootSet () const
 
virtual COREUOBJECT_API void GetLifetimeReplicatedProps (TArray< class FLifetimeProperty > &OutLifetimeProps) const
 
virtual COREUOBJECT_API void GetReplicatedCustomConditionState (FCustomPropertyConditionState &OutActiveState) const
 
virtual COREUOBJECT_API void RegisterReplicationFragments (UE::Net::FFragmentRegistrationContext &Context, UE::Net::EFragmentRegistrationFlags RegistrationFlags)
 
virtual COREUOBJECT_API bool IsNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsFullNameStableForNetworking () const
 
virtual COREUOBJECT_API bool IsSupportedForNetworking () const
 
virtual void GetSubobjectsWithStableNamesForNetworking (TArray< UObject * > &ObjList)
 
virtual COREUOBJECT_API void PreNetReceive ()
 
virtual COREUOBJECT_API void PostNetReceive ()
 
virtual void PostRepNotifies ()
 
virtual COREUOBJECT_API void PreDestroyFromReplication ()
 
COREUOBJECT_API bool IsSelected () const
 
COREUOBJECT_API void SerializeScriptProperties (FArchive &Ar) const
 
COREUOBJECT_API void SerializeScriptProperties (FStructuredArchive::FSlot Slot) const
 
COREUOBJECT_API void ReinitializeProperties (UObject *SourceObject=NULL, struct FObjectInstancingGraph *InstanceGraph=NULL)
 
COREUOBJECT_API FString GetDetailedInfo () const
 
COREUOBJECT_API bool ConditionalBeginDestroy ()
 
COREUOBJECT_API bool ConditionalFinishDestroy ()
 
COREUOBJECT_API void ConditionalPostLoad ()
 
COREUOBJECT_API void ConditionalPreload ()
 
COREUOBJECT_API void ConditionalPostLoadSubobjects (struct FObjectInstancingGraph *OuterInstanceGraph=NULL)
 
bool IsBasedOnArchetype (const UObject *const SomeObject) const
 
COREUOBJECT_API UFunctionFindFunction (FName InName) const
 
COREUOBJECT_API UFunctionFindFunctionChecked (FName InName) const
 
virtual COREUOBJECT_API void BuildSubobjectMapping (UObject *OtherObject, TMap< UObject *, UObject * > &ObjectMapping) const
 
COREUOBJECT_API void CollectDefaultSubobjects (TArray< UObject * > &OutDefaultSubobjects, bool bIncludeNestedSubobjects=false) const
 
COREUOBJECT_API bool CheckDefaultSubobjects (bool bForceCheck=false) const
 
COREUOBJECT_API void SaveConfig (uint64 RequiredPropertyFlags=CPF_Config, const TCHAR *Filename=nullptr, FConfigCacheIni *Config=GConfig, bool bAllowCopyToDefaultObject=true)
 
COREUOBJECT_API void SaveConfig (const FSaveConfigContext &Context)
 
COREUOBJECT_API void UpdateDefaultConfigFile (const FString &SpecificFileLocation="")
 
COREUOBJECT_API bool TryUpdateDefaultConfigFile (const FString &SpecificFileLocation="", bool bWarnIfFail=true)
 
COREUOBJECT_API void UpdateGlobalUserConfigFile ()
 
COREUOBJECT_API void UpdateProjectUserConfigFile ()
 
COREUOBJECT_API void UpdateSinglePropertyInConfigFile (const FProperty *InProperty, const FString &InConfigIniName)
 
COREUOBJECT_API FString GetDefaultConfigFilename () const
 
COREUOBJECT_API FString GetGlobalUserConfigFilename () const
 
COREUOBJECT_API FString GetProjectUserConfigFilename () const
 
virtual const TCHARGetConfigOverridePlatform () const
 
virtual void OverrideConfigSection (FString &SectionName)
 
virtual void OverridePerObjectConfigSection (FString &SectionName)
 
COREUOBJECT_API void LoadConfig (UClass *ConfigClass=nullptr, const TCHAR *Filename=nullptr, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=nullptr, TArray< UE::ConfigAccessTracking::FConfigAccessData > *OutAccessedKeys=nullptr)
 
COREUOBJECT_API void ReloadConfig (UClass *ConfigClass=NULL, const TCHAR *Filename=NULL, uint32 PropagationFlags=UE::LCPF_None, class FProperty *PropertyToLoad=NULL)
 
COREUOBJECT_API void ParseParms (const TCHAR *Parms)
 
COREUOBJECT_API void OutputReferencers (FOutputDevice &Ar, FReferencerInformationList *Referencers=NULL)
 
COREUOBJECT_API void RetrieveReferencers (TArray< FReferencerInformation > *OutInternalReferencers, TArray< FReferencerInformation > *OutExternalReferencers)
 
COREUOBJECT_API void SetLinker (FLinkerLoad *LinkerLoad, int32 LinkerIndex, bool bShouldDetachExisting=true, bool bSilenceLogs=false)
 
COREUOBJECT_API UObjectGetArchetype () const
 
COREUOBJECT_API void GetArchetypeInstances (TArray< UObject * > &Instances)
 
COREUOBJECT_API void InstanceSubobjectTemplates (struct FObjectInstancingGraph *InstanceGraph=NULL)
 
template<class T >
bool Implements () const
 
virtual COREUOBJECT_API void ProcessEvent (UFunction *Function, void *Parms)
 
virtual int32 GetFunctionCallspace (UFunction *Function, FFrame *Stack)
 
virtual bool CallRemoteFunction (UFunction *Function, void *Parms, struct FOutParmRec *OutParms, FFrame *Stack)
 
COREUOBJECT_API bool CallFunctionByNameWithArguments (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor, bool bForceCallWithNonExec=false)
 
COREUOBJECT_API void CallFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
 DECLARE_FUNCTION (ProcessInternal)
 
virtual bool ProcessConsoleExec (const TCHAR *Cmd, FOutputDevice &Ar, UObject *Executor)
 
COREUOBJECT_API void SkipFunction (FFrame &Stack, RESULT_DECL, UFunction *Function)
 
virtual UClassRegenerateClass (UClass *ClassToRegenerate, UObject *PreviousCDO)
 
COREUOBJECT_API bool IsInBlueprint () const
 
COREUOBJECT_API void DestroyNonNativeProperties ()
 
virtual void MarkAsEditorOnlySubobject ()
 
COREUOBJECT_API void AbortInsideMemberFunction () const
 
 DECLARE_FUNCTION (execUndefined)
 
 DECLARE_FUNCTION (execLocalVariable)
 
 DECLARE_FUNCTION (execInstanceVariable)
 
 DECLARE_FUNCTION (execDefaultVariable)
 
 DECLARE_FUNCTION (execLocalOutVariable)
 
 DECLARE_FUNCTION (execInterfaceVariable)
 
 DECLARE_FUNCTION (execClassSparseDataVariable)
 
 DECLARE_FUNCTION (execInterfaceContext)
 
 DECLARE_FUNCTION (execArrayElement)
 
 DECLARE_FUNCTION (execBoolVariable)
 
 DECLARE_FUNCTION (execClassDefaultVariable)
 
 DECLARE_FUNCTION (execEndFunctionParms)
 
 DECLARE_FUNCTION (execNothing)
 
 DECLARE_FUNCTION (execNothingInt32)
 
 DECLARE_FUNCTION (execNothingOp4a)
 
 DECLARE_FUNCTION (execBreakpoint)
 
 DECLARE_FUNCTION (execTracepoint)
 
 DECLARE_FUNCTION (execWireTracepoint)
 
 DECLARE_FUNCTION (execInstrumentation)
 
 DECLARE_FUNCTION (execEndOfScript)
 
 DECLARE_FUNCTION (execReturnNothing)
 
 DECLARE_FUNCTION (execEmptyParmValue)
 
 DECLARE_FUNCTION (execJump)
 
 DECLARE_FUNCTION (execJumpIfNot)
 
 DECLARE_FUNCTION (execAssert)
 
 DECLARE_FUNCTION (execPushExecutionFlow)
 
 DECLARE_FUNCTION (execPopExecutionFlow)
 
 DECLARE_FUNCTION (execComputedJump)
 
 DECLARE_FUNCTION (execPopExecutionFlowIfNot)
 
 DECLARE_FUNCTION (execLet)
 
 DECLARE_FUNCTION (execLetObj)
 
 DECLARE_FUNCTION (execLetWeakObjPtr)
 
 DECLARE_FUNCTION (execLetBool)
 
 DECLARE_FUNCTION (execLetDelegate)
 
 DECLARE_FUNCTION (execLetMulticastDelegate)
 
 DECLARE_FUNCTION (execAddMulticastDelegate)
 
 DECLARE_FUNCTION (execClearMulticastDelegate)
 
 DECLARE_FUNCTION (execEatReturnValue)
 
 DECLARE_FUNCTION (execRemoveMulticastDelegate)
 
 DECLARE_FUNCTION (execSelf)
 
 DECLARE_FUNCTION (execContext)
 
 DECLARE_FUNCTION (execContext_FailSilent)
 
 DECLARE_FUNCTION (execStructMemberContext)
 
 DECLARE_FUNCTION (execVirtualFunction)
 
 DECLARE_FUNCTION (execFinalFunction)
 
 DECLARE_FUNCTION (execLocalVirtualFunction)
 
 DECLARE_FUNCTION (execLocalFinalFunction)
 
 DECLARE_FUNCTION (execStructCmpEq)
 
 DECLARE_FUNCTION (execStructCmpNe)
 
 DECLARE_FUNCTION (execStructMember)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execNotEqual_DelegateDelegate)
 
 DECLARE_FUNCTION (execEqualEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execNotEqual_DelegateFunction)
 
 DECLARE_FUNCTION (execIntConst)
 
 DECLARE_FUNCTION (execInt64Const)
 
 DECLARE_FUNCTION (execUInt64Const)
 
 DECLARE_FUNCTION (execSkipOffsetConst)
 
 DECLARE_FUNCTION (execFloatConst)
 
 DECLARE_FUNCTION (execDoubleConst)
 
 DECLARE_FUNCTION (execStringConst)
 
 DECLARE_FUNCTION (execUnicodeStringConst)
 
 DECLARE_FUNCTION (execTextConst)
 
 DECLARE_FUNCTION (execPropertyConst)
 
 DECLARE_FUNCTION (execObjectConst)
 
 DECLARE_FUNCTION (execSoftObjectConst)
 
 DECLARE_FUNCTION (execFieldPathConst)
 
 DECLARE_FUNCTION (execInstanceDelegate)
 
 DECLARE_FUNCTION (execNameConst)
 
 DECLARE_FUNCTION (execByteConst)
 
 DECLARE_FUNCTION (execIntZero)
 
 DECLARE_FUNCTION (execIntOne)
 
 DECLARE_FUNCTION (execTrue)
 
 DECLARE_FUNCTION (execFalse)
 
 DECLARE_FUNCTION (execNoObject)
 
 DECLARE_FUNCTION (execNullInterface)
 
 DECLARE_FUNCTION (execIntConstByte)
 
 DECLARE_FUNCTION (execRotationConst)
 
 DECLARE_FUNCTION (execVectorConst)
 
 DECLARE_FUNCTION (execVector3fConst)
 
 DECLARE_FUNCTION (execTransformConst)
 
 DECLARE_FUNCTION (execStructConst)
 
 DECLARE_FUNCTION (execSetArray)
 
 DECLARE_FUNCTION (execSetSet)
 
 DECLARE_FUNCTION (execSetMap)
 
 DECLARE_FUNCTION (execArrayConst)
 
 DECLARE_FUNCTION (execSetConst)
 
 DECLARE_FUNCTION (execMapConst)
 
 DECLARE_FUNCTION (execBitFieldConst)
 
 DECLARE_FUNCTION (execNew)
 
 DECLARE_FUNCTION (execClassContext)
 
 DECLARE_FUNCTION (execNativeParm)
 
 DECLARE_FUNCTION (execCast)
 
 DECLARE_FUNCTION (execDynamicCast)
 
 DECLARE_FUNCTION (execMetaCast)
 
 DECLARE_FUNCTION (execInterfaceCast)
 
 DECLARE_FUNCTION (execDoubleToFloatCast)
 
 DECLARE_FUNCTION (execFloatToDoubleCast)
 
 DECLARE_FUNCTION (execObjectToBool)
 
 DECLARE_FUNCTION (execInterfaceToBool)
 
 DECLARE_FUNCTION (execObjectToInterface)
 
 DECLARE_FUNCTION (execInterfaceToInterface)
 
 DECLARE_FUNCTION (execInterfaceToObject)
 
 DECLARE_FUNCTION (execGetDynArrayElement)
 
 DECLARE_FUNCTION (execSetDynArrayElement)
 
 DECLARE_FUNCTION (execGetDynArrayLength)
 
 DECLARE_FUNCTION (execSetDynArrayLength)
 
 DECLARE_FUNCTION (execDynArrayInsert)
 
 DECLARE_FUNCTION (execDynArrayRemove)
 
 DECLARE_FUNCTION (execDynArrayFind)
 
 DECLARE_FUNCTION (execDynArrayFindStruct)
 
 DECLARE_FUNCTION (execDynArrayAdd)
 
 DECLARE_FUNCTION (execDynArrayAddItem)
 
 DECLARE_FUNCTION (execDynArrayInsertItem)
 
 DECLARE_FUNCTION (execDynArrayRemoveItem)
 
 DECLARE_FUNCTION (execDynArraySort)
 
 DECLARE_FUNCTION (execBindDelegate)
 
 DECLARE_FUNCTION (execCallMulticastDelegate)
 
 DECLARE_FUNCTION (execLetValueOnPersistentFrame)
 
 DECLARE_FUNCTION (execCallMathFunction)
 
 DECLARE_FUNCTION (execSwitchValue)
 
 DECLARE_FUNCTION (execArrayGetByRef)
 
 DECLARE_FUNCTION (execAutoRtfmTransact)
 
 DECLARE_FUNCTION (execAutoRtfmStopTransact)
 
 DECLARE_FUNCTION (execAutoRtfmAbortIfNot)
 
void ExecuteUbergraph (int32 EntryPoint)
 
virtual void ValidateGeneratedRepEnums (const TArray< struct FRepRecord > &ClassReps) const
 
virtual uint64 GetNetPushIdDynamic () const
 
- Public Member Functions inherited from UObjectBaseUtility
 UObjectBaseUtility ()
 
 UObjectBaseUtility (EObjectFlags InFlags)
 
void SetFlags (EObjectFlags NewFlags)
 
void ClearFlags (EObjectFlags FlagsToClear)
 
bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
bool HasAllFlags (EObjectFlags FlagsToCheck) const
 
UE_FORCEINLINE_HINT EObjectFlags GetMaskedFlags (EObjectFlags Mask=RF_AllFlags) const
 
UE_FORCEINLINE_HINT void Mark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT void UnMark (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAnyMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT bool HasAllMarks (EObjectMark Marks) const
 
UE_FORCEINLINE_HINT EObjectMark GetAllMarks () const
 
void MarkAsGarbage ()
 
void ClearGarbage ()
 
UE_FORCEINLINE_HINT void AddToRoot ()
 
UE_FORCEINLINE_HINT void RemoveFromRoot ()
 
UE_FORCEINLINE_HINT bool IsRooted () const
 
UE_FORCEINLINE_HINT int32 GetRefCount () const
 
bool ThisThreadAtomicallyClearedRFUnreachable ()
 
UE_FORCEINLINE_HINT bool IsUnreachable () const
 
UE_FORCEINLINE_HINT bool IsNative () const
 
void SetInternalFlags (EInternalObjectFlags FlagsToSet) const
 
UE_FORCEINLINE_HINT EInternalObjectFlags GetInternalFlags () const
 
UE_FORCEINLINE_HINT bool HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const
 
void ClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
bool AtomicallyClearInternalFlags (EInternalObjectFlags FlagsToClear) const
 
COREUOBJECT_API FString GetFullName (const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (const UObject *StopOuter, FString &ResultString, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API void GetFullName (FStringBuilderBase &ResultString, const UObject *StopOuter=NULL, EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
 
COREUOBJECT_API FString GetPathName (const UObject *StopOuter=NULL) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FString &ResultString) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FStringBuilderBase &ResultString) const
 
virtual bool CanBeClusterRoot () const
 
virtual COREUOBJECT_API bool CanBeInCluster () const
 
virtual COREUOBJECT_API void CreateCluster ()
 
virtual void OnClusterMarkedAsPendingKill ()
 
COREUOBJECT_API void AddToCluster (UObjectBaseUtility *ClusterRootOrObjectFromCluster, bool bAddAsMutableObject=false)
 
COREUOBJECT_API FString GetFullGroupName (bool bStartWithOuter) const
 
UE_FORCEINLINE_HINT FString GetName () const
 
UE_FORCEINLINE_HINT void GetName (FString &ResultString) const
 
UE_FORCEINLINE_HINT void AppendName (FString &ResultString) const
 
COREUOBJECT_API bool IsPackageExternal () const
 
COREUOBJECT_API void DetachExternalPackage ()
 
COREUOBJECT_API void ReattachExternalPackage ()
 
COREUOBJECT_API UObjectGetOutermostObject () const
 
COREUOBJECT_API UPackageGetPackage () const
 
UE_INTERNAL virtual COREUOBJECT_API UE::Core::FVersePath GetVersePath () const
 
COREUOBJECT_API UPackageGetOutermost () const
 
COREUOBJECT_API bool MarkPackageDirty () const
 
COREUOBJECT_API bool IsTemplate (EObjectFlags TemplateTypes=RF_ArchetypeObject|RF_ClassDefaultObject) const
 
COREUOBJECT_API UObjectGetTypedOuter (UClass *Target) const
 
template<typename T >
T * GetTypedOuter () const
 
template<typename InterfaceClassType >
InterfaceClassTypeGetImplementingOuter () const
 
COREUOBJECT_API UObjectBaseUtilityGetImplementingOuterObject (const UClass *InInterfaceClass) const
 
COREUOBJECT_API bool IsIn (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsIn (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInOuter (const UObject *SomeOuter) const
 
COREUOBJECT_API bool IsInPackage (const UPackage *SomePackage) const
 
COREUOBJECT_API bool IsInA (const UClass *SomeBaseClass) const
 
COREUOBJECT_API bool RootPackageHasAnyFlags (uint32 CheckFlagMask) const
 
template<typename OtherClassType >
bool IsA (OtherClassType SomeBase) const
 
template<class T >
bool IsA () const
 
COREUOBJECT_API const UClassFindNearestCommonBaseClass (const UClass *TestClass) const
 
COREUOBJECT_API voidGetInterfaceAddress (UClass *InterfaceClass)
 
COREUOBJECT_API voidGetNativeInterfaceAddress (UClass *InterfaceClass)
 
const voidGetNativeInterfaceAddress (UClass *InterfaceClass) const
 
COREUOBJECT_API bool IsTemplateForSubobjects (EObjectFlags TemplateTypes=RF_ClassDefaultObject|RF_DefaultSubObject|RF_InheritableComponentTemplate) const
 
COREUOBJECT_API bool IsDefaultSubobject () const
 
COREUOBJECT_API class FLinkerLoadGetLinker () const
 
COREUOBJECT_API int32 GetLinkerIndex () const
 
COREUOBJECT_API FPackageFileVersion GetLinkerUEVersion () const
 
int32 GetLinkerUE4Version () const
 
COREUOBJECT_API int32 GetLinkerLicenseeUEVersion () const
 
int32 GetLinkerLicenseeUE4Version () const
 
COREUOBJECT_API int32 GetLinkerCustomVersion (FGuid CustomVersionKey) const
 
UE_FORCEINLINE_HINT bool operator< (const UObjectBaseUtility &Other) const
 
TStatId GetStatID (bool bForDeferredUse=false) const
 
- Public Member Functions inherited from UObjectBase
COREUOBJECT_API UObjectBase (UClass *InClass, EObjectFlags InFlags, EInternalObjectFlags InInternalFlags, UObject *InOuter, FName InName, int32 InInternalIndex=-1, int32 InSerialNumber=0, FRemoteObjectId InRemoteId=FRemoteObjectId())
 
virtual COREUOBJECT_API ~UObjectBase ()
 
COREUOBJECT_API bool IsValidLowLevel () const
 
COREUOBJECT_API bool IsValidLowLevelFast (bool bRecursive=true) const
 
FORCEINLINE uint32 GetUniqueID () const
 
FORCEINLINE UClassGetClass () const
 
FORCEINLINE UObjectGetOuter () const
 
FORCEINLINE FName GetFName () const
 
virtual COREUOBJECT_API FName GetFNameForStatID () const
 
COREUOBJECT_API UPackageGetExternalPackage () const
 
COREUOBJECT_API void SetExternalPackage (UPackage *InPackage)
 
COREUOBJECT_API UPackageGetExternalPackageInternal () const
 
COREUOBJECT_API void MarkAsReachable () const
 
COREUOBJECT_API void AddRef () const
 
COREUOBJECT_API void ReleaseRef () const
 
FORCEINLINE EObjectFlags GetFlags () const
 
FORCENOINLINE void AtomicallySetFlags (EObjectFlags FlagsToAdd)
 
FORCENOINLINE void AtomicallyClearFlags (EObjectFlags FlagsToClear)
 

Static Public Member Functions

static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
- Static Public Member Functions inherited from UObject
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedServer (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API void UpdateClassesExcludedFromDedicatedClient (const TArray< FString > &InClassNames, const TArray< FString > &InModulesNames)
 
static COREUOBJECT_API bool CanCreateInCurrentContext (UObject *Template)
 
static COREUOBJECT_API void AddReferencedObjects (UObject *InThis, FReferenceCollector &Collector)
 
static COREUOBJECT_API const FNameSourceFileTagName ()
 
static COREUOBJECT_API UObjectGetArchetypeFromRequiredInfo (const UClass *Class, const UObject *Outer, FName Name, EObjectFlags ObjectFlags)
 
- Static Public Member Functions inherited from UObjectBaseUtility
static bool IsGarbageEliminationEnabled ()
 
static bool IsPendingKillEnabled ()
 
static void SetGarbageEliminationEnabled (bool bEnabled)
 
static COREUOBJECT_API void ReloadObjectsFromModifiedConfigSections (const class FConfigModificationTracker *ChangeTracker)
 
- Static Public Member Functions inherited from UObjectBase
static COREUOBJECT_API FString RemoveClassPrefix (const TCHAR *ClassName)
 
static void PrefetchClass (UObject *Object)
 
static void PrefetchOuter (UObject *Object)
 

Public Attributes

TObjectPtr< UFieldChildren
 
FFieldChildProperties
 
int32 PropertiesSize
 
int16 MinAlignment
 
union { 
 
   TArray< uint8 >   Script = {} 
 
};  
 
FPropertyPropertyLink
 
FPropertyRefLink
 
FPropertyDestructorLink
 
FPropertyPostConstructLink
 
TArray< TObjectPtr< UObject > > ScriptAndPropertyObjectReferences
 
FUnresolvedScriptPropertiesArrayUnresolvedScriptProperties
 
std::atomic< const struct FUnversionedStructSchema * > UnversionedGameSchema = nullptr
 
- Public Attributes inherited from UField
TObjectPtr< UFieldNext
 

Protected Member Functions

virtual FName FindPropertyNameFromGuid (const FGuid &PropertyGuid) const
 
virtual FGuid FindPropertyGuidFromName (const FName InName) const
 
virtual bool ArePropertyGuidsAvailable () const
 
COREUOBJECT_API void SerializeProperties (FArchive &Ar)
 
COREUOBJECT_API void LoadTaggedPropertiesFromText (FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults, const UObject *BreakRecursionIfFullyLoad) const
 
- Protected Member Functions inherited from UObject
virtual FString GetDetailedInfoInternal () const
 
COREUOBJECT_API bool CanCheckDefaultSubObjects (bool bForceCheck, bool &bResult) const
 
virtual COREUOBJECT_API bool CheckDefaultSubobjectsInternal () const
 
- Protected Member Functions inherited from UObjectBase
 UObjectBase ()
 
COREUOBJECT_API UObjectBase (EObjectFlags InFlags)
 
COREUOBJECT_API void LowLevelRename (FName NewName, UObject *NewOuter=NULL)
 
COREUOBJECT_API void Register (class UClass *(*StaticClassFn)(), const TCHAR *PackageName, const TCHAR *Name)
 
COREUOBJECT_API void Register (const TCHAR *PackageName, const TCHAR *Name)
 
virtual COREUOBJECT_API void DeferredRegister (UClass *UClassStaticClass, const TCHAR *PackageName, const TCHAR *Name)
 
FORCEINLINE void SetFlagsTo (EObjectFlags NewFlags)
 

Friends

struct Z_Construct_UClass_UStruct_Statics
 
template<typename... Classes>
struct UE::Private::TIntrinsicClassBaseChainImpl
 
class UObjectBaseUtility
 
class FStructBaseChain
 
class FBlueprintCompileReinstancer
 
consteval FStructBaseChainUE::Private::AsStructBaseChain (UStruct *)
 

Detailed Description

Base class for all UObject types that contain fields.

Member Typedef Documentation

◆ FConstSuperStructIterator

◆ FSuperStructIterator

◆ FUnresolvedScriptPropertiesArray

Constructor & Destructor Documentation

◆ UStruct() [1/4]

UStruct::UStruct ( const FObjectInitializer ObjectInitializer)
inline

◆ UStruct() [2/4]

UStruct::UStruct ( EStaticConstructor  ,
int32  InSize,
int32  InAlignment,
EObjectFlags  InFlags 
)

◆ UStruct() [3/4]

UStruct::UStruct ( UStruct InSuperStruct,
SIZE_T  ParamsSize = 0,
SIZE_T  Alignment = 0 
)
explicit

◆ UStruct() [4/4]

UStruct::UStruct ( const FObjectInitializer ObjectInitializer,
UStruct InSuperStruct,
SIZE_T  ParamsSize = 0,
SIZE_T  Alignment = 0 
)
explicit

◆ ~UStruct()

UStruct::~UStruct ( )
virtual

Member Function Documentation

◆ AddCppProperty()

void UStruct::AddCppProperty ( FProperty Property)
overridevirtual

Reimplemented from UField.

◆ AddReferencedObjects()

void UStruct::AddReferencedObjects ( UObject InThis,
FReferenceCollector Collector 
)
static

◆ ArePropertyGuidsAvailable()

virtual bool UStruct::ArePropertyGuidsAvailable ( ) const
inlineprotectedvirtual

Returns if we have access to property guids

Reimplemented in UBlueprintGeneratedClass.

◆ CollectBytecodeAndPropertyReferencedObjects()

void UStruct::CollectBytecodeAndPropertyReferencedObjects ( )

Collects UObjects referenced by bytecode and properties for faster GC access

◆ CollectBytecodeAndPropertyReferencedObjectsRecursively()

void UStruct::CollectBytecodeAndPropertyReferencedObjectsRecursively ( )

Collects UObjects referenced by bytecode and properties for this class and its child fields and their children...

◆ CollectBytecodeReferencedObjects()

void UStruct::CollectBytecodeReferencedObjects ( TArray< UObject * > &  OutReferencedObjects)

Collects UObjects referenced by bytecode

Parameters
OutReferencedObjectsbuffer to store the referenced objects in (not cleared by this function)

◆ CollectPropertyReferencedObjects()

void UStruct::CollectPropertyReferencedObjects ( TArray< UObject * > &  OutReferencedObjects)

Collects UObjects referenced by properties

Parameters
OutReferencedObjectsbuffer to store the referenced objects in (not cleared by this function)

◆ CustomFindProperty()

virtual FProperty * UStruct::CustomFindProperty ( const FName  InName) const
inlinevirtual

Look up a property by an alternate name if it was not found in the first search, this is overridden for user structs

Reimplemented in UUserDefinedStruct.

◆ DeleteUnresolvedScriptProperties()

void UStruct::DeleteUnresolvedScriptProperties ( )
inline

Deletes the UnresolvedScriptProperties array

◆ DestroyChildPropertiesAndResetPropertyLinks()

void UStruct::DestroyChildPropertiesAndResetPropertyLinks ( )

Destroys all properties owned by this struct

◆ DestroyStruct()

void UStruct::DestroyStruct ( void Dest,
int32  ArrayDim = 1 
) const
virtual

Destroy a struct in memory. This may be done by calling the native destructor or individually destroying properties

Parameters
DestPointer to memory to destory
ArrayDimNumber of elements in the array
StrideStride of the array. If this default (0), then we will pull the size from the struct

Reimplemented in UPropertyBag, and UScriptStruct.

◆ FindPropertyByName()

FProperty * UStruct::FindPropertyByName ( FName  InName) const

Searches property link chain for a property with the specified name

◆ FindPropertyByOffset()

FProperty * UStruct::FindPropertyByOffset ( int32  Offset) const

Internal API that searches the property link chain for a property with the specified offset

◆ FindPropertyGuidFromName()

virtual FGuid UStruct::FindPropertyGuidFromName ( const FName  InName) const
inlineprotectedvirtual

Find property guid

Reimplemented in UBlueprintGeneratedClass.

◆ FindPropertyNameFromGuid()

virtual FName UStruct::FindPropertyNameFromGuid ( const FGuid PropertyGuid) const
inlineprotectedvirtual

Returns the property name from the guid

Reimplemented in UBlueprintGeneratedClass.

◆ FinishDestroy()

void UStruct::FinishDestroy ( )
overridevirtual

Called to finish destroying the object. After UObject::FinishDestroy is called, the object's memory should no longer be accessed.

Warning
Because properties are destroyed here, Super::FinishDestroy() should always be called at the end of your child class's FinishDestroy() method, rather than at the beginning.

Reimplemented from UObject.

Reimplemented in UPropertyBag, and UClass.

◆ GetAuthoredNameForField() [1/2]

FString UStruct::GetAuthoredNameForField ( const FField Field) const
virtual

Returns a human readable string for a given field, overridden for user defined structs

Reimplemented in UUserDefinedStruct, and UVerseStruct.

◆ GetAuthoredNameForField() [2/2]

FString UStruct::GetAuthoredNameForField ( const UField Field) const
virtual

Returns a human readable string for a given field, overridden for user defined structs

◆ GetInheritanceSuper()

virtual UStruct * UStruct::GetInheritanceSuper ( ) const
inlinevirtual

Returns the structure used for inheritance, may be changed by child types

Reimplemented in UFunction.

◆ GetMinAlignment()

UE_FORCEINLINE_HINT int32 UStruct::GetMinAlignment ( ) const
inline

Alignment of structure in memory, structure will be at least this large

◆ GetPrefixCPP()

virtual const TCHAR * UStruct::GetPrefixCPP ( ) const
inlinevirtual

Returns the struct/ class prefix used for the C++ declaration of this struct/ class.

Returns
Prefix character used for C++ declaration of this struct/ class.

Reimplemented in UClass.

◆ GetPreloadDependencies()

void UStruct::GetPreloadDependencies ( TArray< UObject * > &  OutDeps)
overridevirtual

Called during cooking. Must return all objects that will be Preload()ed when this is serialized at load time. Only used by the EDL.

Parameters
OutDepsall objects that will be preloaded when this is serialized at load time

Reimplemented from UObject.

Reimplemented in UClass, and UBlueprintGeneratedClass.

◆ GetPropertiesSize()

UE_FORCEINLINE_HINT int32 UStruct::GetPropertiesSize ( ) const
inline

Total size of all UProperties, the allocated structure may be larger due to alignment

◆ GetStructPathName()

FTopLevelAssetPath UStruct::GetStructPathName ( ) const

Returns struct path name as a package + struct FName pair

◆ GetStructureSize()

UE_FORCEINLINE_HINT int32 UStruct::GetStructureSize ( ) const
inline

Returns actual allocated size of structure in memory

◆ GetSuperStruct()

UStruct * UStruct::GetSuperStruct ( ) const
inline

Struct this inherits from, may be null

◆ GetSuperStructIterator() [1/2]

FSuperStructIterator UStruct::GetSuperStructIterator ( )
inline

Returns an iterate to traverse the super chain without doing TObjectPtr access tracking, starting with this struct

◆ GetSuperStructIterator() [2/2]

FConstSuperStructIterator UStruct::GetSuperStructIterator ( ) const
inline

Returns an iterate to traverse the super chain without doing TObjectPtr access tracking, starting with this struct

◆ InitializeStruct()

void UStruct::InitializeStruct ( void Dest,
int32  ArrayDim = 1 
) const
virtual

Initialize a struct over uninitialized memory. This may be done by calling the native constructor or individually initializing properties

Parameters
DestPointer to memory to initialize
ArrayDimNumber of elements in the array
StrideStride of the array, If this default (0), then we will pull the size from the struct

Reimplemented in UPropertyBag, UUserDefinedStruct, and UScriptStruct.

◆ InstanceSubobjectTemplates()

void UStruct::InstanceSubobjectTemplates ( TNotNull< void * >  Data,
const void DefaultData,
const UStruct DefaultStruct,
TNotNull< UObject * >  Owner,
FObjectInstancingGraph InstanceGraph 
)

Creates new copies of components

Parameters
Datapointer to the address of the subobject referenced by this FProperty
DefaultDatapointer to the address of the default value of the subbject referenced by this FProperty
DefaultStructthe struct corresponding to the buffer pointed to by DefaultData
Ownerthe object that contains the component currently located at Data
InstanceGraphcontains the mappings of instanced objects and components to their templates

◆ IsChildOf() [1/2]

template<class T >
bool UStruct::IsChildOf ( ) const
inline

Returns true if this struct either is class T, or is a child of class T.

◆ IsChildOf() [2/2]

bool UStruct::IsChildOf ( const UStruct SomeBase) const

Returns true if this struct either is SomeBase, or is a child of SomeBase.

Returns
true if this object is of the specified type.

◆ IsStructTrashed()

virtual bool UStruct::IsStructTrashed ( ) const
inlinevirtual

If true, this class has been cleaned and sanitized (trashed) and should not be used

Reimplemented in UScriptStruct, and UClass.

◆ Link()

void UStruct::Link ( FArchive Ar,
bool  bRelinkExistingProperties 
)
virtual

Creates the field/property links and gets structure ready for use at runtime

Reimplemented in UScriptStruct, UFunction, UClass, UAnimBlueprintGeneratedClass, and UBlueprintGeneratedClass.

◆ LoadTaggedPropertiesFromText()

void UStruct::LoadTaggedPropertiesFromText ( FStructuredArchive::FSlot  Slot,
uint8 Data,
const UStruct DefaultsStruct,
const uint8 Defaults,
const UObject BreakRecursionIfFullyLoad 
) const
protected

Serializes list of properties to a te, using property tags to handle mismatches

◆ PostLoad()

void UStruct::PostLoad ( )
overridevirtual

Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

Reimplemented from UField.

Reimplemented in UFunction, UClass, UAnimBlueprintGeneratedClass, UBlueprintGeneratedClass, and UWidgetBlueprintGeneratedClass.

◆ PreloadChildren()

void UStruct::PreloadChildren ( FArchive Ar)
virtual

Preloads all fields that belong to this struct

Parameters
ArArchive used for loading this struct

◆ RegisterDependencies()

void UStruct::RegisterDependencies ( )
overridevirtual

Force any base classes to be registered first, then call BaseRegister

Reimplemented from UObjectBase.

◆ ResolveVisitedPathInfo()

void * UStruct::ResolveVisitedPathInfo ( void Data,
const FPropertyVisitorInfo Info 
) const
virtual

Attempt to resolve the given inner path info against this outer struct to get the inner property value.

Returns
The inner property value, or null if the path info is incompatible/missing on this struct.

Reimplemented in UScriptStruct.

◆ Serialize() [1/2]

void UStruct::Serialize ( FArchive Ar)
overridevirtual

Handles reading, writing, and reference collecting using FArchive. This implementation handles all FProperty serialization, but can be overridden for native variables.

Reimplemented from UField.

Reimplemented in UScriptStruct, UFunction, USparseDelegateFunction, UClass, UAnimBlueprintGeneratedClass, UBlueprintGeneratedClass, and UWidgetBlueprintGeneratedClass.

◆ Serialize() [2/2]

virtual COREUOBJECT_API void UStruct::Serialize ( FStructuredArchive::FRecord  Record)
overridevirtual

Reimplemented from UObject.

Reimplemented in UUserDefinedStruct, and UScriptStruct.

◆ SerializeBin() [1/2]

virtual void UStruct::SerializeBin ( FArchive Ar,
void Data 
) const
inlinefinalvirtual

Serializes struct properties, does not handle defaults. See SerializeBinEx for handling defaults.

Parameters
Arthe archive to use for serialization
Datapointer to the location of the beginning of the property data
Note
Binary serialization will read and write unstructured data from the archive. As deprecated properties are read from archives but not written, it is dangerous to call this function on types with deprecated properties, unless the ArWantBinarySerialization flag is set on the archive to force serialization to occur always.

◆ SerializeBin() [2/2]

void UStruct::SerializeBin ( FStructuredArchive::FSlot  Slot,
void Data 
) const
virtual

Serializes struct properties, does not handle defaults. See SerializeBinEx for handling defaults.

Parameters
SlotThe structured archive slot we are serializing to
Datapointer to the location of the beginning of the property data
Note
Binary serialization will read and write unstructured data from the archive. As deprecated properties are read from archives but not written, it is dangerous to call this function on types with deprecated properties, unless the ArWantBinarySerialization flag is set on the archive to force serialization to occur always.

◆ SerializeBinEx()

void UStruct::SerializeBinEx ( FStructuredArchive::FSlot  Slot,
void Data,
void const *  DefaultData,
UStruct DefaultStruct 
) const

Serializes the class properties that reside in Data if they differ from the corresponding values in DefaultData

Parameters
SlotThe structured archive slot we are serializing to
Datapointer to the location of the beginning of the property data
DefaultDatapointer to the location of the beginning of the data that should be compared against
DefaultStructthe struct corresponding to the block of memory located at DefaultData
Note
Binary serialization will read and write unstructured data from the archive. As deprecated properties are read from archives but not written, it is dangerous to call this function on types with deprecated properties, unless the ArWantBinarySerialization flag is set on the archive to force serialization to occur always.

◆ SerializeExpr()

EExprToken UStruct::SerializeExpr ( int32 iCode,
FArchive Ar 
)
virtual

Serialize an expression to an archive. Returns expression token

◆ SerializeProperties()

void UStruct::SerializeProperties ( FArchive Ar)
protected

Serializes properties of this struct

◆ SerializeTaggedProperties() [1/2]

virtual void UStruct::SerializeTaggedProperties ( FArchive Ar,
uint8 Data,
const UStruct DefaultsStruct,
const uint8 Defaults,
const UObject BreakRecursionIfFullyLoad = nullptr 
) const
inlinefinalvirtual

Serializes list of properties, using property tags to handle mismatches

◆ SerializeTaggedProperties() [2/2]

void UStruct::SerializeTaggedProperties ( FStructuredArchive::FSlot  Slot,
uint8 Data,
const UStruct DefaultsStruct,
const uint8 Defaults,
const UObject BreakRecursionIfFullyLoad = nullptr 
) const
virtual

Serializes list of properties, using property tags to handle mismatches

Reimplemented in UUserDefinedStruct.

◆ SetPropertiesSize()

void UStruct::SetPropertiesSize ( int32  NewSize)
inline

Modifies the property size after it's been recomputed

◆ SetSuperStruct()

void UStruct::SetSuperStruct ( UStruct NewSuperStruct)
virtual

Sets the super struct pointer and updates hash information as necessary. Note that this is not sufficient to actually reparent a struct, it simply sets a pointer.

Reimplemented in UClass.

◆ SetUnresolvedScriptProperties()

void UStruct::SetUnresolvedScriptProperties ( FUnresolvedScriptPropertiesArray InUnresolvedProperties)
inline

Sets the UnresolvedScriptProperties array

◆ StaticLink()

void UStruct::StaticLink ( bool  bRelinkExistingProperties = false)

Static wrapper for Link, using a dummy archive

◆ TagSubobjects()

void UStruct::TagSubobjects ( EObjectFlags  NewFlags)
overridevirtual

Tags objects that are part of the same asset with the specified object flag, used for GC checking

Parameters
ObjectFlagsObject Flags to enable on the related objects

Reimplemented from UObject.

Reimplemented in UClass.

◆ Visit() [1/3]

EPropertyVisitorControlFlow UStruct::Visit ( FPropertyVisitorContext Context,
const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)>  InFunc 
) const
virtual

Visits this property and allows recursion into the inner properties This method allows callers to visit inner properties without knowing about its container type as opposed to TPropertyIterator. This visit property pattern facilitates the recursion into user defined properties and allows users to add specific visit logic on UStruct via traits.

Parameters
Contextwhich contains the path that was computed until we reached this property and the data to the property to visit
InFuncto call on each visited property, the return value controls what is the next behavior once this property has been visited
Returns
the new action to take one visited this property

Reimplemented in UScriptStruct.

◆ Visit() [2/3]

Visits this property and allows recursion into the inner properties This method allows callers to visit inner properties without knowing about its container type as opposed to TPropertyIterator. This visit property pattern facilitates the recursion into user defined properties and allows users to add specific visit logic on UStruct via traits.

Parameters
Datato the property to visit
InFuncto call on each visited property, the return value controls what is the next behavior once this property has been visited
Returns
the new action to take one visited this property

◆ Visit() [3/3]

Friends And Related Symbol Documentation

◆ FBlueprintCompileReinstancer

friend class FBlueprintCompileReinstancer
friend

◆ FStructBaseChain

friend class FStructBaseChain
friend

◆ UE::Private::AsStructBaseChain

consteval FStructBaseChain * UE::Private::AsStructBaseChain ( UStruct )
friend

◆ UE::Private::TIntrinsicClassBaseChainImpl

template<typename... Classes>
friend struct UE::Private::TIntrinsicClassBaseChainImpl
friend

◆ UObjectBaseUtility

friend class UObjectBaseUtility
friend

◆ Z_Construct_UClass_UStruct_Statics

friend struct Z_Construct_UClass_UStruct_Statics
friend

Member Data Documentation

◆ [union]

union { ... } UStruct

◆ ChildProperties

FField* UStruct::ChildProperties

Pointer to start of linked list of child fields

◆ Children

TObjectPtr<UField> UStruct::Children

Pointer to start of linked list of child fields

◆ DestructorLink

FProperty* UStruct::DestructorLink

In memory only: Linked list of properties requiring destruction. Note this does not include things that will be destroyed by the native destructor

◆ MinAlignment

int16 UStruct::MinAlignment

Alignment of structure in memory, structure will be at least this large

◆ PostConstructLink

FProperty* UStruct::PostConstructLink

In memory only: Linked list of properties requiring post constructor initialization

◆ PropertiesSize

int32 UStruct::PropertiesSize

Total size of all UProperties, the allocated structure may be larger due to alignment

◆ PropertyLink

FProperty* UStruct::PropertyLink

In memory only: Linked list of properties from most-derived to base

◆ RefLink

FProperty* UStruct::RefLink

In memory only: Linked list of object reference properties from most-derived to base

◆ Script

TArray<uint8> UStruct::Script = {}

Script bytecode associated with this object

◆ ScriptAndPropertyObjectReferences

TArray<TObjectPtr<UObject> > UStruct::ScriptAndPropertyObjectReferences

Array of object references embedded in script code and referenced by FProperties. Mirrored for easy access by realtime garbage collection code

◆ UnresolvedScriptProperties

FUnresolvedScriptPropertiesArray* UStruct::UnresolvedScriptProperties

Contains a list of script properties that couldn't be resolved at load time

◆ UnversionedGameSchema

std::atomic<const struct FUnversionedStructSchema*> UStruct::UnversionedGameSchema = nullptr
mutable

Cached schema for optimized unversioned and filtereditoronly property serialization, owned by this.


The documentation for this class was generated from the following files: