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

#include <UnrealType.h>

+ Inheritance diagram for FProperty:

Public Member Functions

COREUOBJECT_API FProperty (FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
 
COREUOBJECT_API FProperty (FFieldVariant InOwner, const UECodeGen_Private::FPropertyParamsBaseWithOffset &Prop, EPropertyFlags AdditionalPropertyFlags=CPF_None)
 
COREUOBJECT_API FProperty (FFieldVariant InOwner, const UECodeGen_Private::FPropertyParamsBaseWithoutOffset &Prop, EPropertyFlags AdditionalPropertyFlags=CPF_None)
 
COREUOBJECT_API void SetElementSize (int32 NewSize)
 
int32 GetElementSize () const
 
virtual COREUOBJECT_API void Serialize (FArchive &Ar) override
 
virtual COREUOBJECT_API void PostDuplicate (const FField &InField) override
 
COREUOBJECT_API FString GetNameCPP () const
 
virtual COREUOBJECT_API FString GetCPPMacroType (FString &ExtendedTypeText) const
 
virtual bool HasSetter () const
 
virtual bool HasGetter () const
 
virtual bool HasSetterOrGetter () const
 
virtual void CallSetter (void *Container, const void *InValue) const
 
virtual void CallGetter (const void *Container, void *OutValue) const
 
COREUOBJECT_API EPropertyVisitorControlFlow Visit (const FPropertyVisitorData &Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorPath &, const FPropertyVisitorData &)> InFunc) const
 
COREUOBJECT_API EPropertyVisitorControlFlow Visit (const FPropertyVisitorData &Data, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc) 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
 
UE_FORCEINLINE_HINT int32 GetOffset_ForDebug () const
 
UE_FORCEINLINE_HINT int32 GetOffset_ForUFunction () const
 
UE_FORCEINLINE_HINT int32 GetOffset_ForGC () const
 
UE_FORCEINLINE_HINT int32 GetOffset_ForInternal () const
 
UE_FORCEINLINE_HINT int32 GetOffset_ReplaceWith_ContainerPtrToValuePtr () const
 
void LinkWithoutChangingOffset (FArchive &Ar)
 
int32 Link (FArchive &Ar)
 
virtual COREUOBJECT_API EConvertFromTypeResult ConvertFromType (const FPropertyTag &Tag, FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults)
 
bool Identical_InContainer (const void *A, const void *B, int32 ArrayIndex=0, uint32 PortFlags=0) const
 
void SerializeBinProperty (FStructuredArchive::FSlot Slot, void *Data, int32 ArrayIdx=-1)
 
void SerializeNonMatchingBinProperty (FStructuredArchive::FSlot Slot, void *Data, void const *DefaultData, UStruct *DefaultStruct)
 
virtual COREUOBJECT_API bool SupportsNetSharedSerialization () const
 
void ExportTextItem_Direct (FString &ValueStr, const void *PropertyValue, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
 
void ExportTextItem_InContainer (FString &ValueStr, const void *Container, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
 
const TCHARImportText_InContainer (const TCHAR *Buffer, void *Container, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText=(FOutputDevice *) GWarn) const
 
const TCHARImportText_Direct (const TCHAR *Buffer, void *PropertyPtr, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText=(FOutputDevice *) GWarn) const
 
void SetValue_InContainer (void *OutContainer, const void *InValue) const
 
void GetValue_InContainer (void const *InContainer, void *OutValue) const
 
COREUOBJECT_API void SetSingleValue_InContainer (void *OutContainer, const void *InValue, int32 ArrayIndex) const
 
COREUOBJECT_API void GetSingleValue_InContainer (const void *InContainer, void *OutValue, int32 ArrayIndex) const
 
COREUOBJECT_API voidAllocateAndInitializeValue () const
 
COREUOBJECT_API void DestroyAndFreeValue (void *InMemory) const
 
COREUOBJECT_API void PerformOperationWithSetter (void *OutContainer, void *DirectPropertyAddress, TFunctionRef< void(void *)> DirectValueAccessFunc) const
 
COREUOBJECT_API void PerformOperationWithGetter (void *OutContainer, const void *DirectPropertyAddress, TFunctionRef< void(const void *)> DirectValueAccessFunc) const
 
virtual COREUOBJECT_API voidGetValueAddressAtIndex_Direct (const FProperty *Inner, void *InValueAddress, int32 Index) const
 
COREUOBJECT_API bool ExportText_Direct (FString &ValueStr, const void *Data, const void *Delta, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
 
UE_FORCEINLINE_HINT bool ExportText_InContainer (int32 Index, FString &ValueStr, const void *Data, const void *Delta, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const
 
template<typename ValueType >
UE_FORCEINLINE_HINT ValueType * ContainerPtrToValuePtr (UObject *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
UE_FORCEINLINE_HINT ValueType * ContainerPtrToValuePtr (void *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
UE_FORCEINLINE_HINT ValueType const * ContainerPtrToValuePtr (UObject const *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
UE_FORCEINLINE_HINT ValueType const * ContainerPtrToValuePtr (void const *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
ValueType * ContainerPtrToValuePtrForDefaults (const UStruct *ContainerClass, UObject *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
ValueType * ContainerPtrToValuePtrForDefaults (const UStruct *ContainerClass, void *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
const ValueType * ContainerPtrToValuePtrForDefaults (const UStruct *ContainerClass, const UObject *ContainerPtr, int32 ArrayIndex=0) const
 
template<typename ValueType >
const ValueType * ContainerPtrToValuePtrForDefaults (const UStruct *ContainerClass, const void *ContainerPtr, int32 ArrayIndex=0) const
 
UE_FORCEINLINE_HINT bool IsInContainer (int32 ContainerSize) const
 
UE_FORCEINLINE_HINT bool IsInContainer (const UStruct *ContainerClass) const
 
void CopySingleValue (void *Dest, void const *Src) const
 
COREUOBJECT_API uint32 GetValueTypeHash (const void *Src) const
 
void CopyCompleteValue (void *Dest, void const *Src) const
 
UE_FORCEINLINE_HINT void CopyCompleteValue_InContainer (void *Dest, void const *Src) const
 
virtual COREUOBJECT_API void CopySingleValueToScriptVM (void *Dest, void const *Src) const
 
virtual COREUOBJECT_API void CopyCompleteValueToScriptVM (void *Dest, void const *Src) const
 
virtual COREUOBJECT_API void CopyCompleteValueToScriptVM_InContainer (void *OutValue, void const *InContainer) const
 
virtual COREUOBJECT_API void CopyCompleteValueFromScriptVM_InContainer (void *OutContainer, void const *InValue) const
 
virtual COREUOBJECT_API void CopySingleValueFromScriptVM (void *Dest, void const *Src) const
 
virtual COREUOBJECT_API void CopyCompleteValueFromScriptVM (void *Dest, void const *Src) const
 
void ClearValue (void *Data) const
 
void ClearValue_InContainer (void *Data, int32 ArrayIndex=0) const
 
void DestroyValue (void *Dest) const
 
void DestroyValue_InContainer (void *Dest) const
 
bool ContainsFinishDestroy (TArray< const FStructProperty * > &EncounteredStructProps) const
 
void FinishDestroy (void *Data) const
 
void FinishDestroy_InContainer (void *Data) const
 
void InitializeValue (void *Dest) const
 
void InitializeValue_InContainer (void *Dest) const
 
COREUOBJECT_API bool ValidateImportFlags (uint32 PortFlags, FOutputDevice *ErrorText=NULL) const
 
COREUOBJECT_API bool ShouldPort (uint32 PortFlags=0) const
 
virtual COREUOBJECT_API FName GetID () const
 
virtual COREUOBJECT_API void InstanceSubobjects (void *Data, void const *DefaultData, TNotNull< UObject * > Owner, struct FObjectInstancingGraph *InstanceGraph)
 
virtual COREUOBJECT_API int32 GetMinAlignment () const
 
virtual COREUOBJECT_API bool ContainsObjectReference (TArray< const FStructProperty * > &EncounteredStructProps, EPropertyObjectReferenceType InReferenceType=EPropertyObjectReferenceType::Strong) const
 
bool ContainsWeakObjectReference () const
 
UE_FORCEINLINE_HINT bool ContainsInstancedObjectProperty () const
 
virtual COREUOBJECT_API void EmitReferenceInfo (UE::GC::FSchemaBuilder &Schema, int32 BaseOffset, TArray< const FStructProperty * > &EncounteredStructProps, UE::GC::FPropertyStack &DebugPath)
 
UE_FORCEINLINE_HINT int32 GetSize () const
 
COREUOBJECT_API bool ShouldSerializeValue (FArchive &Ar) const
 
virtual COREUOBJECT_API bool UseBinaryOrNativeSerialization (const FArchive &Ar) const
 
bool ShouldDuplicateValue () const
 
virtual COREUOBJECT_API bool LoadTypeName (UE::FPropertyTypeName Type, const FPropertyTag *Tag=nullptr)
 
virtual COREUOBJECT_API void SaveTypeName (UE::FPropertyTypeNameBuilder &Type) const
 
virtual COREUOBJECT_API bool CanSerializeFromTypeName (UE::FPropertyTypeName Type) const
 
FPropertyGetOwnerProperty ()
 
const FPropertyGetOwnerProperty () const
 
UE_FORCEINLINE_HINT EPropertyFlags GetPropertyFlags () const
 
UE_FORCEINLINE_HINT void SetPropertyFlags (EPropertyFlags NewFlags)
 
UE_FORCEINLINE_HINT void ClearPropertyFlags (EPropertyFlags NewFlags)
 
UE_FORCEINLINE_HINT bool HasAnyPropertyFlags (uint64 FlagsToCheck) const
 
UE_FORCEINLINE_HINT bool HasAllPropertyFlags (uint64 FlagsToCheck) const
 
UE_FORCEINLINE_HINT FPropertyGetRepOwner ()
 
UE_FORCEINLINE_HINT bool IsEditorOnlyProperty () const
 
virtual COREUOBJECT_API bool SameType (const FProperty *Other) const
 
ELifetimeCondition GetBlueprintReplicationCondition () const
 
void SetBlueprintReplicationCondition (ELifetimeCondition InBlueprintReplicationCondition)
 
virtual bool HasIntrusiveUnsetOptionalState() const PURE_VIRTUAL(FProperty virtual COREUOBJECT_API void InitializeIntrusiveUnsetOptionalValue (void *Data) const
 
virtual COREUOBJECT_API bool IsIntrusiveOptionalValueSet (const void *Data) const
 
virtual COREUOBJECT_API void ClearIntrusiveOptionalValue (void *Data) const
 
virtual COREUOBJECT_API void EmitIntrusiveOptionalReferenceInfo (UE::GC::FSchemaBuilder &Schema, int32 BaseOffset, TArray< const FStructProperty * > &EncounteredStructProps, UE::GC::FPropertyStack &DebugPath)
 
- Public Member Functions inherited from FField
virtual SIZE_T GetFieldSize () const
 
COREUOBJECT_API FField (EInternal InInernal, FFieldClass *InClass)
 
COREUOBJECT_API FField (FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
 
virtual COREUOBJECT_API ~FField ()
 
virtual COREUOBJECT_API void PostLoad ()
 
virtual COREUOBJECT_API void GetPreloadDependencies (TArray< UObject * > &OutDeps)
 
virtual COREUOBJECT_API void BeginDestroy ()
 
virtual COREUOBJECT_API void AddReferencedObjects (FReferenceCollector &Collector)
 
COREUOBJECT_API bool IsRooted () const
 
COREUOBJECT_API bool IsNative () const
 
COREUOBJECT_API bool IsValidLowLevel () const
 
COREUOBJECT_API bool IsIn (const UObject *InOwner) const
 
COREUOBJECT_API bool IsIn (const FField *InOwner) const
 
COREUOBJECT_API FLinkerLoadGetLinker () const
 
virtual COREUOBJECT_API void AddCppProperty (FProperty *Property)
 
virtual COREUOBJECT_API void Bind ()
 
EObjectFlags GetFlags () const
 
void SetFlags (EObjectFlags NewFlags)
 
void ClearFlags (EObjectFlags NewFlags)
 
bool HasAnyFlags (EObjectFlags FlagsToCheck) const
 
bool HasAllFlags (EObjectFlags FlagsToCheck) const
 
FFieldClassGetClass () const
 
uint64 GetCastFlags () const
 
bool IsA (const FFieldClass *FieldType) const
 
template<typename T >
bool IsA () const
 
bool HasAnyCastFlags (const uint64 InCastFlags) const
 
bool HasAllCastFlags (const uint64 InCastFlags) const
 
void AppendName (FString &ResultString) const
 
FFieldVariant GetOwnerVariant () const
 
UObjectGetOwnerUObject () const
 
UE_FORCEINLINE_HINT UObjectInternalGetOwnerAsUObjectUnsafe () const
 
COREUOBJECT_API UClassGetOwnerClass () const
 
COREUOBJECT_API UStructGetOwnerStruct () const
 
COREUOBJECT_API UFieldGetOwnerUField () const
 
COREUOBJECT_API UPackageGetOutermost () const
 
COREUOBJECT_API UObjectGetTypedOwner (UClass *Target) const
 
COREUOBJECT_API FFieldGetTypedOwner (FFieldClass *Target) const
 
template<typename T >
T * GetOwner () const
 
template<typename T >
FUNCTION_NON_NULL_RETURN_START T * GetOwnerChecked () const FUNCTION_NON_NULL_RETURN_END
 
template<typename T >
T * GetTypedOwner () const
 
FName GetFName () const
 
FString GetName () const
 
void GetName (FString &OutName) const
 
COREUOBJECT_API void Rename (const FName &NewName)
 
COREUOBJECT_API FString GetPathName (const UObject *StopOuter=nullptr) const
 
COREUOBJECT_API void GetPathName (const UObject *StopOuter, FStringBuilderBase &ResultString) const
 
COREUOBJECT_API FString GetFullName () const
 
COREUOBJECT_API FString GetAuthoredName () const
 
virtual FFieldGetInnerFieldByName (const FName &InName)
 
virtual void GetInnerFields (TArray< FField * > &OutFields)
 

Static Public Member Functions

static COREUOBJECT_API const TCHARImportSingleProperty (const TCHAR *Str, void *DestData, const UStruct *ObjectStruct, UObject *SubobjectOuter, int32 PortFlags, FOutputDevice *Warn, TArray< struct FDefinedProperty > &DefinedProperties)
 
static COREUOBJECT_API FName FindRedirectedPropertyName (const UStruct *ObjectStruct, FName OldName)
 
- Static Public Member Functions inherited from FField
static COREUOBJECT_API FFieldClassStaticClass ()
 
static constexpr EClassCastFlags StaticClassCastFlagsPrivate ()
 
static constexpr EClassCastFlags StaticClassCastFlags ()
 
static COREUOBJECT_API FFieldConstruct (const FFieldVariant &InOwner, const FName &InName, EObjectFlags InFlags)
 
static COREUOBJECT_API FFieldConstruct (const FName &FieldTypeName, const FFieldVariant &InOwner, const FName &InName, EObjectFlags InFlags)
 
static COREUOBJECT_API FFieldTryConstruct (const FName &FieldTypeName, const FFieldVariant &InOwner, const FName &InName, EObjectFlags InFlags)
 
static COREUOBJECT_API FFieldDuplicate (const FField *InField, FFieldVariant DestOwner, const FName DestName=NAME_None, EObjectFlags FlagMask=RF_AllFlags, EInternalObjectFlags InternalFlagsMask=EInternalObjectFlags_AllFlags)
 
static COREUOBJECT_API FName GenerateFFieldName (FFieldVariant InOwner, FFieldClass *InClass)
 

Public Attributes

EPropertyFlags PropertyFlags
 
uint16 RepIndex
 
FPropertyPropertyLinkNext = nullptr
 
union { 
 
   FProperty *   NextRef = nullptr 
 
};  
 
union { 
 
   FProperty *   DestructorLinkNext = nullptr 
 
};  
 
FPropertyPostConstructLinkNext = nullptr
 
FName RepNotifyFunc
 
virtual FString GetCPPType (FString *ExtendedTypeText=NULL, uint32 CPPExportFlags=0) const PURE_VIRTUAL(FProperty
 
virtual bool Identical (const void *A, const void *B, uint32 PortFlags=0) const PURE_VIRTUAL(FProperty
 
virtual void SerializeItem(FStructuredArchive::FSlot Slot, void *Value, void const *Defaults=NULL) const PURE_VIRTUAL(FProperty virtual COREUOBJECT_API boo NetSerializeItem )(FArchive &Ar, UPackageMap *Map, void *Data, TArray< uint8 > *MetaData=NULL) const
 
- Public Attributes inherited from FField
FFieldVariant Owner
 
FFieldNext
 
FName NamePrivate
 
EObjectFlags FlagsPrivate
 

Protected Member Functions

COREUOBJECT_API void SetOffset_Internal (int32 NewOffset)
 
COREUOBJECT_API void Init ()
 
virtual COREUOBJECT_API void LinkInternal (FArchive &Ar)
 
voidPointerToValuePtr (void const *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, int32 ArrayIndex=0) const
 
virtual COREUOBJECT_API void CopyValuesInternal (void *Dest, void const *Src, int32 Count) const
 
virtual COREUOBJECT_API uint32 GetValueTypeHashInternal (const void *Src) const
 
virtual COREUOBJECT_API void ClearValueInternal (void *Data) const
 
virtual COREUOBJECT_API void DestroyValueInternal (void *Dest) const
 
virtual COREUOBJECT_API bool ContainsClearOnFinishDestroyInternal (TArray< const FStructProperty * > &EncounteredStructProps) const
 
virtual COREUOBJECT_API void FinishDestroyInternal (void *Data) const
 
virtual COREUOBJECT_API void InitializeValueInternal (void *Dest) const
 
- Protected Member Functions inherited from FField
void SetFlagsTo (EObjectFlags NewFlags)
 

Protected Attributes

virtual void virtual ExportText_Internal(FString &ValueStr, const void *PropertyValueOrContainer, EPropertyPointerType PointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope=nullptr) const PURE_VIRTUAL(FProperty const TCHAR ImportText_Internal )(const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PointerType, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText) const PURE_VIRTUAL(FProperty
 

Friends

class FMapProperty
 
class UEProperty_Private::FProperty_DoNotUse
 
const TCHARUE::CoreUObject::Private::ImportEnumFromBuffer (UEnum *Enum, const FProperty *PropertyToSet, const FNumericProperty *UnderlyingProp, const TCHAR *PropertyClassName, const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, FOutputDevice *ErrorText)
 
void UE::CoreUObject::Private::ExportEnumToBuffer (const UEnum *Enum, const FProperty *Prop, const FNumericProperty *NumericProp, FString &ValueStr, const void *PropertyValueOrContainer, EPropertyPointerType PropertyPointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope)
 

Additional Inherited Members

- Public Types inherited from FField
typedef FField Super
 
typedef FField ThisClass
 
typedef FField BaseFieldClass
 
typedef FFieldClass FieldTypeClass
 
using FLinkedListBuilder = TLinkedListBuilder< FField >
 

Detailed Description

Constructor & Destructor Documentation

◆ FProperty() [1/3]

FProperty::FProperty ( FFieldVariant  InOwner,
const FName InName,
EObjectFlags  InObjectFlags 
)

◆ FProperty() [2/3]

FProperty::FProperty ( FFieldVariant  InOwner,
const UECodeGen_Private::FPropertyParamsBaseWithOffset &  Prop,
EPropertyFlags  AdditionalPropertyFlags = CPF_None 
)

Constructor used for constructing compiled-in properties

Parameters
InOwnerOwner of the property
PropBasePointer to the compiled in structure describing the property

◆ FProperty() [3/3]

FProperty::FProperty ( FFieldVariant  InOwner,
const UECodeGen_Private::FPropertyParamsBaseWithoutOffset &  Prop,
EPropertyFlags  AdditionalPropertyFlags = CPF_None 
)

Constructor used for constructing compiled-in properties

Parameters
InOwnerOwner of the property
PropBasePointer to the compiled in structure describing the property

Member Function Documentation

◆ AllocateAndInitializeValue()

void * FProperty::AllocateAndInitializeValue ( ) const

Allocates and initializes memory to hold a value this property represents

◆ CallGetter()

virtual void FProperty::CallGetter ( const void Container,
void OutValue 
) const
inlinevirtual

Calls the native getter function for this property

Parameters
ContainerPointer to the owner of this property (either UObject or struct)
OutValuePointer to the value where the existing property value will be copied to

◆ CallSetter()

virtual void FProperty::CallSetter ( void Container,
const void InValue 
) const
inlinevirtual

Calls the native setter function for this property

Parameters
ContainerPointer to the owner of this property (either UObject or struct)
InValuePointer to the new value

◆ CanSerializeFromTypeName()

bool FProperty::CanSerializeFromTypeName ( UE::FPropertyTypeName  Type) const
virtual

Returns true if the type of this property matches the type name.

Reimplemented in FEnumProperty, FOptionalProperty, FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

◆ ClearIntrusiveOptionalValue()

void FProperty::ClearIntrusiveOptionalValue ( void Data) const
virtual

Set the value to it's special unset state. Equivalent to TOptional<T>::Reset. Only valid to call if HasIntrusiveUnsetOptionalState returns true.

See also
operator=(FIntrusiveUnsetOptionalState)
Parameters
DataAddress of the alue, already offset.

Reimplemented in TProperty< double, FNumericProperty >, TProperty< FFieldPath, FProperty >, TProperty< FLazyObjectPtr, FObjectPropertyBase >, TProperty< float, FNumericProperty >, TProperty< FMulticastScriptDelegate, FMulticastDelegateProperty >, TProperty< FName, FProperty >, TProperty< FScriptArray, FProperty >, TProperty< FScriptDelegate, FProperty >, TProperty< FScriptInterface, FProperty >, TProperty< FScriptMap, FProperty >, TProperty< FScriptSet, FProperty >, TProperty< FSoftObjectPtr, FObjectPropertyBase >, TProperty< FSparseDelegate, FMulticastDelegateProperty >, TProperty< FText, FProperty >, TProperty< FWeakObjectPtr, FObjectPropertyBase >, TProperty< int16, FNumericProperty >, TProperty< int32, FNumericProperty >, TProperty< int64, FNumericProperty >, TProperty< int8, FNumericProperty >, TProperty< InTCppType, FMulticastDelegateProperty >, TProperty< InTCppType, FNumericProperty >, TProperty< InTCppType, FObjectPropertyBase >, TProperty< TObjectPtr< UObject >, FObjectPropertyBase >, TProperty< UE::FDynamicallyTypedValue, FProperty >, TProperty< UE_STRPROPERTY_STRINGTYPE, FProperty >, TProperty< uint16, FNumericProperty >, TProperty< uint32, FNumericProperty >, TProperty< uint64, FNumericProperty >, TProperty< uint8, FNumericProperty >, FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

◆ ClearPropertyFlags()

UE_FORCEINLINE_HINT void FProperty::ClearPropertyFlags ( EPropertyFlags  NewFlags)
inline

◆ ClearValue()

void FProperty::ClearValue ( void Data) const
inline

Zeros the value for this property. The existing data is assumed valid (so for example this calls FString::Empty) This only does one item and not the entire fixed size array.

Parameters
Datathe address of the value for this property that should be cleared.

◆ ClearValue_InContainer()

void FProperty::ClearValue_InContainer ( void Data,
int32  ArrayIndex = 0 
) const
inline

Zeros the value for this property. The existing data is assumed valid (so for example this calls FString::Empty) This only does one item and not the entire fixed size array.

Parameters
Datathe address of the container of the value for this property that should be cleared.

◆ ClearValueInternal()

◆ ContainerPtrToValuePtr() [1/4]

template<typename ValueType >
UE_FORCEINLINE_HINT ValueType * FProperty::ContainerPtrToValuePtr ( UObject ContainerPtr,
int32  ArrayIndex = 0 
) const
inline

Get the pointer to property value in a supplied 'container'. You can only call this function on a UObject* or a uint8*. If the property you want is a 'top level' UObject property, you must call the function passing in a UObject* and not a uint8*. There are checks inside the function to vertify this.

Parameters
ContainerPtrUObject* or uint8* to container of property value
ArrayIndexIn array case, index of array element we want

◆ ContainerPtrToValuePtr() [2/4]

template<typename ValueType >
UE_FORCEINLINE_HINT ValueType const * FProperty::ContainerPtrToValuePtr ( UObject const *  ContainerPtr,
int32  ArrayIndex = 0 
) const
inline

◆ ContainerPtrToValuePtr() [3/4]

template<typename ValueType >
UE_FORCEINLINE_HINT ValueType * FProperty::ContainerPtrToValuePtr ( void ContainerPtr,
int32  ArrayIndex = 0 
) const
inline

◆ ContainerPtrToValuePtr() [4/4]

template<typename ValueType >
UE_FORCEINLINE_HINT ValueType const * FProperty::ContainerPtrToValuePtr ( void const *  ContainerPtr,
int32  ArrayIndex = 0 
) const
inline

◆ ContainerPtrToValuePtrForDefaults() [1/4]

template<typename ValueType >
const ValueType * FProperty::ContainerPtrToValuePtrForDefaults ( const UStruct ContainerClass,
const UObject ContainerPtr,
int32  ArrayIndex = 0 
) const
inline

◆ ContainerPtrToValuePtrForDefaults() [2/4]

template<typename ValueType >
const ValueType * FProperty::ContainerPtrToValuePtrForDefaults ( const UStruct ContainerClass,
const void ContainerPtr,
int32  ArrayIndex = 0 
) const
inline

◆ ContainerPtrToValuePtrForDefaults() [3/4]

template<typename ValueType >
ValueType * FProperty::ContainerPtrToValuePtrForDefaults ( const UStruct ContainerClass,
UObject ContainerPtr,
int32  ArrayIndex = 0 
) const
inline

◆ ContainerPtrToValuePtrForDefaults() [4/4]

template<typename ValueType >
ValueType * FProperty::ContainerPtrToValuePtrForDefaults ( const UStruct ContainerClass,
void ContainerPtr,
int32  ArrayIndex = 0 
) const
inline

◆ ContainsClearOnFinishDestroyInternal()

bool FProperty::ContainsClearOnFinishDestroyInternal ( TArray< const FStructProperty * > &  EncounteredStructProps) const
protectedvirtual

◆ ContainsFinishDestroy()

bool FProperty::ContainsFinishDestroy ( TArray< const FStructProperty * > &  EncounteredStructProps) const
inline

Returns true if the property or any of the child properties should be cleared on FinishDestroy.

◆ ContainsInstancedObjectProperty()

UE_FORCEINLINE_HINT bool FProperty::ContainsInstancedObjectProperty ( ) const
inline

Returns true if this property, or in the case of e.g. array or struct properties any sub- property, contains a UObject reference that is marked CPF_NeedCtorLink (i.e. instanced keyword).

Returns
true if property (or sub- properties) contain a FObjectProperty that is marked CPF_NeedCtorLink, false otherwise

◆ ContainsObjectReference()

bool FProperty::ContainsObjectReference ( TArray< const FStructProperty * > &  EncounteredStructProps,
EPropertyObjectReferenceType  InReferenceType = EPropertyObjectReferenceType::Strong 
) const
virtual

Returns true if this property, or in the case of e.g. array or struct properties any sub- property, contains a UObject reference.

Parameters
EncounteredStructPropsused to check for recursion in arrays
InReferenceTypetype of object reference (strong / weak)
Returns
true if property (or sub- properties) contains the specified type of UObject reference, false otherwise

Returns true if this property, or in the case of e.g. array or struct properties any sub- property, contains a UObject reference.

Returns
true if property (or sub- properties) contain a UObject reference, false otherwise

Reimplemented in FFieldPathProperty, FOptionalProperty, TFObjectPropertyBase< InTCppType >, FInterfaceProperty, FArrayProperty, FMapProperty, FSetProperty, FStructProperty, FDelegateProperty, FMulticastDelegateProperty, and FVerseDynamicProperty.

◆ ContainsWeakObjectReference()

bool FProperty::ContainsWeakObjectReference ( ) const
inline

Returns true if this property, or in the case of e.g. array or struct properties any sub- property, contains a weak UObject reference.

Returns
true if property (or sub- properties) contain a weak UObject reference, false otherwise

◆ ConvertFromType()

EConvertFromTypeResult FProperty::ConvertFromType ( const FPropertyTag Tag,
FStructuredArchive::FSlot  Slot,
uint8 Data,
const UStruct DefaultsStruct,
const uint8 Defaults 
)
virtual

Allows a property to implement backwards compatibility handling for tagged properties

Parameters
Tagproperty tag of the loading data
Arthe archive the data is being loaded from
Dataa pointer to the container to write the loaded data to
DefaultsStruct
Defaultsif available, a pointer to the container containing the default value for this property, or null
Returns
A state which tells the tagged property system how the property dealt with the data. Converted: the function handled conversion. CannotConvert: the tag is not something that the property can convert. Serialized: the function handled serialization without conversion. UseSerializeItem: no conversion was done on the property - this can mean that the tag is correct and normal serialization applies or that the tag is incompatible.

Reimplemented in FEnumProperty, FFieldPathProperty, FOptionalProperty, FTextProperty, FBoolProperty, FArrayProperty, FMapProperty, FSetProperty, FStructProperty, and FMulticastDelegateProperty.

◆ CopyCompleteValue()

void FProperty::CopyCompleteValue ( void Dest,
void const *  Src 
) const
inline

Copy the value for all elements of this property.

Parameters
Destthe address where the value should be copied to. This should always correspond to the BASE + OFFSET, where BASE = (for member properties) the address of the UObject which contains this data, (for locals/parameters) the address of the space allocated for the function's locals OFFSET = the Offset of this FProperty
Srcthe address of the value to copy from. should be evaluated the same way as Dest
InstancingParamscontains information about instancing (if any) to perform

◆ CopyCompleteValue_InContainer()

UE_FORCEINLINE_HINT void FProperty::CopyCompleteValue_InContainer ( void Dest,
void const *  Src 
) const
inline

◆ CopyCompleteValueFromScriptVM()

void FProperty::CopyCompleteValueFromScriptVM ( void Dest,
void const *  Src 
) const
virtual

Copy the value for all elements of this property. From the script VM.

Parameters
Destthe address where the value should be copied to. This should always correspond to the BASE + OFFSET, where BASE = (for member properties) the address of the UObject which contains this data, (for locals/parameters) the address of the space allocated for the function's locals OFFSET = the Offset of this FProperty
Srcthe address of the value to copy from. should be evaluated the same way as Dest

◆ CopyCompleteValueFromScriptVM_InContainer()

void FProperty::CopyCompleteValueFromScriptVM_InContainer ( void OutContainer,
void const *  InValue 
) const
virtual

◆ CopyCompleteValueToScriptVM()

void FProperty::CopyCompleteValueToScriptVM ( void Dest,
void const *  Src 
) const
virtual

Copy the value for all elements of this property. To the script VM.

Parameters
Destthe address where the value should be copied to. This should always correspond to the BASE + OFFSET, where BASE = (for member properties) the address of the UObject which contains this data, (for locals/parameters) the address of the space allocated for the function's locals OFFSET = the Offset of this FProperty
Srcthe address of the value to copy from. should be evaluated the same way as Dest

◆ CopyCompleteValueToScriptVM_InContainer()

void FProperty::CopyCompleteValueToScriptVM_InContainer ( void OutValue,
void const *  InContainer 
) const
virtual

Equivalent to the above functions, but using the container and aware of getters/setters when the container has them.

◆ CopySingleValue()

void FProperty::CopySingleValue ( void Dest,
void const *  Src 
) const
inline

Copy the value for a single element of this property.

Parameters
Destthe address where the value should be copied to. This should always correspond to the BASE + OFFSET + INDEX * SIZE, where BASE = (for member properties) the address of the UObject which contains this data, (for locals/parameters) the address of the space allocated for the function's locals OFFSET = the Offset of this FProperty INDEX = the index that you want to copy. for properties which are not arrays, this should always be 0 SIZE = the ElementSize of this FProperty
Srcthe address of the value to copy from. should be evaluated the same way as Dest
InstancingParamscontains information about instancing (if any) to perform

◆ CopySingleValueFromScriptVM()

void FProperty::CopySingleValueFromScriptVM ( void Dest,
void const *  Src 
) const
virtual

Copy the value for a single element of this property. From the script VM.

Parameters
Destthe address where the value should be copied to. This should always correspond to the BASE + OFFSET + INDEX * SIZE, where BASE = (for member properties) the address of the UObject which contains this data, (for locals/parameters) the address of the space allocated for the function's locals OFFSET = the Offset of this FProperty INDEX = the index that you want to copy. for properties which are not arrays, this should always be 0 SIZE = the ElementSize of this FProperty
Srcthe address of the value to copy from. should be evaluated the same way as Dest

◆ CopySingleValueToScriptVM()

void FProperty::CopySingleValueToScriptVM ( void Dest,
void const *  Src 
) const
virtual

Copy the value for a single element of this property. To the script VM.

Parameters
Destthe address where the value should be copied to. This should always correspond to the BASE + OFFSET + INDEX * SIZE, where BASE = (for member properties) the address of the UObject which contains this data, (for locals/parameters) the address of the space allocated for the function's locals OFFSET = the Offset of this FProperty INDEX = the index that you want to copy. for properties which are not arrays, this should always be 0 SIZE = the ElementSize of this FProperty
Srcthe address of the value to copy from. should be evaluated the same way as Dest

◆ CopyValuesInternal()

◆ DestroyAndFreeValue()

void FProperty::DestroyAndFreeValue ( void InMemory) const

Destroys and frees memory with a value this property represents

◆ DestroyValue()

void FProperty::DestroyValue ( void Dest) const
inline

Destroys the value for this property. The existing data is assumed valid (so for example this calls FString::Empty) This does the entire fixed size array.

Parameters
Destthe address of the value for this property that should be destroyed.

◆ DestroyValue_InContainer()

void FProperty::DestroyValue_InContainer ( void Dest) const
inline

Destroys the value for this property. The existing data is assumed valid (so for example this calls FString::Empty) This does the entire fixed size array.

Parameters
Destthe address of the container containing the value that should be destroyed.

◆ DestroyValueInternal()

◆ EmitIntrusiveOptionalReferenceInfo()

void FProperty::EmitIntrusiveOptionalReferenceInfo ( UE::GC::FSchemaBuilder Schema,
int32  BaseOffset,
TArray< const FStructProperty * > &  EncounteredStructProps,
UE::GC::FPropertyStack DebugPath 
)
virtual

For properties returning true from HasIntrusiveUnsetOptionalState which also contain object references, emit information for the garbage collector to safely gather the references from the value whether the optional value is set or unset.

Reimplemented in FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

◆ EmitReferenceInfo()

void FProperty::EmitReferenceInfo ( UE::GC::FSchemaBuilder Schema,
int32  BaseOffset,
TArray< const FStructProperty * > &  EncounteredStructProps,
UE::GC::FPropertyStack DebugPath 
)
virtual

Emits tokens used by realtime garbage collection code to passed in ReferenceTokenStream. The offset emitted is relative to the passed in BaseOffset which is used by e.g. arrays of structs.

Reimplemented in FFieldPathProperty, FOptionalProperty, FInterfaceProperty, FArrayProperty, FMapProperty, FSetProperty, FStructProperty, and FVerseDynamicProperty.

◆ ExportText_Direct()

bool FProperty::ExportText_Direct ( FString &  ValueStr,
const void Data,
const void Delta,
UObject Parent,
int32  PortFlags,
UObject ExportRootScope = nullptr 
) const

◆ ExportText_InContainer()

UE_FORCEINLINE_HINT bool FProperty::ExportText_InContainer ( int32  Index,
FString &  ValueStr,
const void Data,
const void Delta,
UObject Parent,
int32  PortFlags,
UObject ExportRootScope = nullptr 
) const
inline

◆ ExportTextItem_Direct()

void FProperty::ExportTextItem_Direct ( FString &  ValueStr,
const void PropertyValue,
const void DefaultValue,
UObject Parent,
int32  PortFlags,
UObject ExportRootScope = nullptr 
) const
inline

◆ ExportTextItem_InContainer()

void FProperty::ExportTextItem_InContainer ( FString &  ValueStr,
const void Container,
const void DefaultValue,
UObject Parent,
int32  PortFlags,
UObject ExportRootScope = nullptr 
) const
inline

◆ FindRedirectedPropertyName()

FName FProperty::FindRedirectedPropertyName ( const UStruct ObjectStruct,
FName  OldName 
)
static

Gets a redirected property name, will return NAME_None if no redirection was found

◆ FinishDestroy()

void FProperty::FinishDestroy ( void Data) const
inline

Applies appropriate finish destroy actions for the property if needed. This is used during UObject destruction to e.g. safely clear values which rely on UScriptStructs. This does the entire fixed size array.

Parameters
Datathe address of the value for this property that should be handled for finish destroy.

◆ FinishDestroy_InContainer()

void FProperty::FinishDestroy_InContainer ( void Data) const
inline

Applies appropriate finish destroy actions for the property if needed. This is used during UObject destruction to e.g. safely clear values which rely on UScriptStructs. This does the entire fixed size array.

Parameters
Datathe address of the container containing the value that should be handled for finish destroy.

◆ FinishDestroyInternal()

void FProperty::FinishDestroyInternal ( void Data) const
protectedvirtual

◆ GetBlueprintReplicationCondition()

ELifetimeCondition FProperty::GetBlueprintReplicationCondition ( ) const
inline

◆ GetCPPMacroType()

FString FProperty::GetCPPMacroType ( FString &  ExtendedTypeText) const
virtual

◆ GetElementSize()

int32 FProperty::GetElementSize ( ) const
inline

◆ GetID()

FName FProperty::GetID ( ) const
virtual

Reimplemented in FObjectPropertyBase.

◆ GetMinAlignment()

◆ GetNameCPP()

FString FProperty::GetNameCPP ( ) const

Returns the C++ name of the property, including the _DEPRECATED suffix if the property is deprecated.

Returns
C++ name of property

◆ GetOffset_ForDebug()

UE_FORCEINLINE_HINT int32 FProperty::GetOffset_ForDebug ( ) const
inline

Return offset of property from container base.

◆ GetOffset_ForGC()

UE_FORCEINLINE_HINT int32 FProperty::GetOffset_ForGC ( ) const
inline

Return offset of property from container base.

◆ GetOffset_ForInternal()

UE_FORCEINLINE_HINT int32 FProperty::GetOffset_ForInternal ( ) const
inline

Return offset of property from container base.

◆ GetOffset_ForUFunction()

UE_FORCEINLINE_HINT int32 FProperty::GetOffset_ForUFunction ( ) const
inline

Return offset of property from container base.

◆ GetOffset_ReplaceWith_ContainerPtrToValuePtr()

UE_FORCEINLINE_HINT int32 FProperty::GetOffset_ReplaceWith_ContainerPtrToValuePtr ( ) const
inline

Return offset of property from container base.

◆ GetOwnerProperty() [1/2]

FProperty * FProperty::GetOwnerProperty ( )
inline

Returns the first FProperty in this property's Outer chain that does not have a FProperty for an Outer

◆ GetOwnerProperty() [2/2]

const FProperty * FProperty::GetOwnerProperty ( ) const
inline

◆ GetPropertyFlags()

UE_FORCEINLINE_HINT EPropertyFlags FProperty::GetPropertyFlags ( ) const
inline

Returns this property's propertyflags

◆ GetRepOwner()

UE_FORCEINLINE_HINT FProperty * FProperty::GetRepOwner ( )
inline

Returns the replication owner, which is the property itself, or NULL if this isn't important for replication. It is relevant if the property is a net relevant and not being run in the editor

◆ GetSingleValue_InContainer()

void FProperty::GetSingleValue_InContainer ( const void InContainer,
void OutValue,
int32  ArrayIndex 
) const

Copies a single value to OutValue even if the property represents a static array of values

Parameters
InContainerInstance owner of the property
OutValuePointer to the memory that the value will be copied to. Must be at least ElementSize big
ArrayIndexIndex into the static array to copy the value from. If the property is not a static array it should be 0

◆ GetSize()

UE_FORCEINLINE_HINT int32 FProperty::GetSize ( ) const
inline

◆ GetValue_InContainer()

void FProperty::GetValue_InContainer ( void const *  InContainer,
void OutValue 
) const
inline

◆ GetValueAddressAtIndex_Direct()

void * FProperty::GetValueAddressAtIndex_Direct ( const FProperty Inner,
void InValueAddress,
int32  Index 
) const
virtual

Gets value address at given index inside of a static array or container

Parameters
InValueAddressaddress of the value represented by this property
Indexinto the static array or container
Returns
address of the value at given index

Reimplemented in FArrayProperty, FMapProperty, and FSetProperty.

◆ GetValueTypeHash()

uint32 FProperty::GetValueTypeHash ( const void Src) const

Returns the hash value for an element of this property.

◆ GetValueTypeHashInternal()

uint32 FProperty::GetValueTypeHashInternal ( const void Src) const
protectedvirtual

◆ HasAllPropertyFlags()

UE_FORCEINLINE_HINT bool FProperty::HasAllPropertyFlags ( uint64  FlagsToCheck) const
inline

Used to safely check whether all of the passed in flags are set.

Parameters
FlagsToCheckObject flags to check for
Returns
true if all of the passed in flags are set (including no flags passed in), false otherwise

◆ HasAnyPropertyFlags()

UE_FORCEINLINE_HINT bool FProperty::HasAnyPropertyFlags ( uint64  FlagsToCheck) const
inline

Used to safely check whether any of the passed in flags are set.

Parameters
FlagsToCheckObject flags to check for.
Returns
true if any of the passed in flags are set, false otherwise (including no flags passed in).

◆ HasGetter()

virtual bool FProperty::HasGetter ( ) const
inlinevirtual

Checks if this property as a native getter function

◆ HasSetter()

virtual bool FProperty::HasSetter ( ) const
inlinevirtual

Checks if this property as a native setter function

◆ HasSetterOrGetter()

virtual bool FProperty::HasSetterOrGetter ( ) const
inlinevirtual

Checks if this property as a native setter or getter function

◆ Identical_InContainer()

bool FProperty::Identical_InContainer ( const void A,
const void B,
int32  ArrayIndex = 0,
uint32  PortFlags = 0 
) const
inline

Determines whether the property values are identical.

Parameters
Aproperty container of data to be compared, NOT offset
Bproperty container of data to be compared, NOT offset
PortFlagsallows caller more control over how the property values are compared
Returns
true if the property values are identical

◆ ImportSingleProperty()

const TCHAR * FProperty::ImportSingleProperty ( const TCHAR Str,
void DestData,
const UStruct ObjectStruct,
UObject SubobjectOuter,
int32  PortFlags,
FOutputDevice Warn,
TArray< struct FDefinedProperty > &  DefinedProperties 
)
static

parses and imports a text definition of a single property's value (if array, may be an individual element) also includes parsing of special operations for array properties (Add/Remove/RemoveIndex/Empty)

Parameters
Strthe string to parse
DestDatabase location the parsed property should place its data (DestData + ParsedProperty->Offset)
ObjectStructthe struct containing the valid fields
SubobjectOuterowner of DestData and any subobjects within it
PortFlagsproperty import flags
Warnoutput device for any error messages
DefinedProperties(out) list of properties/indices that have been parsed by previous calls, so duplicate definitions cause an error
Returns
pointer to remaining text in the stream (even on failure, but on failure it may not be advanced past the entire key/value pair)

◆ ImportText_Direct()

const TCHAR * FProperty::ImportText_Direct ( const TCHAR Buffer,
void PropertyPtr,
UObject OwnerObject,
int32  PortFlags,
FOutputDevice ErrorText = (FOutputDevice*)GWarn 
) const
inline

Import a text value

Parameters
BufferText representing the property value
PropertyPtrPointer to property value
OwnerObjectObject that owns the property
PortFlagsFlags controlling the behavior when importing the value
ErrorTextOutput device for throwing warnings or errors on import
Returns
Buffer pointer advanced by the number of characters consumed when reading the text value

◆ ImportText_InContainer()

const TCHAR * FProperty::ImportText_InContainer ( const TCHAR Buffer,
void Container,
UObject OwnerObject,
int32  PortFlags,
FOutputDevice ErrorText = (FOutputDevice*)GWarn 
) const
inline

Import a text value

Parameters
BufferText representing the property value
ContainerPointer to the container that owns this property (either UObject pointer or a struct pointer)
OwnerObjectObject that owns the property container (if the container is an UObject then Container is also OwnerObject)
PortFlagsFlags controlling the behavior when importing the value
ErrorTextOutput device for throwing warnings or errors on import
Returns
Buffer pointer advanced by the number of characters consumed when reading the text value

◆ Init()

void FProperty::Init ( )
protected

Initializes internal state.

◆ InitializeIntrusiveUnsetOptionalValue()

void FProperty::InitializeIntrusiveUnsetOptionalValue ( void Data) const
virtual

Returns whether this type has a special state for an unset TOptional meaning the size TOptional<T> and T are the same.
Properties must implement this function explicitly even if they do not have such a state.

See also
Optional.h - HasIntrusiveUnsetOptionalState
FOptionalProperty Initialize the value at the given address to an unset TOptional using an intrusive state rather than a trailing boolean.
TOptional::TOptional
Constructor taking FIntrusiveUnsetOptionalState

Reimplemented in TProperty< double, FNumericProperty >, TProperty< FFieldPath, FProperty >, TProperty< FLazyObjectPtr, FObjectPropertyBase >, TProperty< float, FNumericProperty >, TProperty< FMulticastScriptDelegate, FMulticastDelegateProperty >, TProperty< FName, FProperty >, TProperty< FScriptArray, FProperty >, TProperty< FScriptDelegate, FProperty >, TProperty< FScriptInterface, FProperty >, TProperty< FScriptMap, FProperty >, TProperty< FScriptSet, FProperty >, TProperty< FSoftObjectPtr, FObjectPropertyBase >, TProperty< FSparseDelegate, FMulticastDelegateProperty >, TProperty< FText, FProperty >, TProperty< FWeakObjectPtr, FObjectPropertyBase >, TProperty< int16, FNumericProperty >, TProperty< int32, FNumericProperty >, TProperty< int64, FNumericProperty >, TProperty< int8, FNumericProperty >, TProperty< InTCppType, FMulticastDelegateProperty >, TProperty< InTCppType, FNumericProperty >, TProperty< InTCppType, FObjectPropertyBase >, TProperty< TObjectPtr< UObject >, FObjectPropertyBase >, TProperty< UE::FDynamicallyTypedValue, FProperty >, TProperty< UE_STRPROPERTY_STRINGTYPE, FProperty >, TProperty< uint16, FNumericProperty >, TProperty< uint32, FNumericProperty >, TProperty< uint64, FNumericProperty >, TProperty< uint8, FNumericProperty >, FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

◆ InitializeValue()

void FProperty::InitializeValue ( void Dest) const
inline

Zeros, copies from the default, or calls the constructor for on the value for this property. The existing data is assumed invalid (so for example this might indirectly call FString::FString, This will do the entire fixed size array.

Parameters
Destthe address of the value for this property that should be cleared.

◆ InitializeValue_InContainer()

void FProperty::InitializeValue_InContainer ( void Dest) const
inline

Zeros, copies from the default, or calls the constructor for on the value for this property. The existing data is assumed invalid (so for example this might indirectly call FString::FString, This will do the entire fixed size array.

Parameters
Destthe address of the container of value for this property that should be cleared.

◆ InitializeValueInternal()

◆ InstanceSubobjects()

void FProperty::InstanceSubobjects ( void Data,
void const *  DefaultData,
TNotNull< UObject * >  Owner,
struct FObjectInstancingGraph InstanceGraph 
)
virtual

Creates new copies of components

Parameters
Datapointer to the address of the instanced object referenced by this UComponentProperty
DefaultDatapointer to the address of the default value of the instanced object referenced by this UComponentProperty
Ownerthe object that contains this property's data
InstanceGraphcontains the mappings of instanced objects and components to their templates

Reimplemented in FOptionalProperty, FObjectPropertyBase, FArrayProperty, FMapProperty, FSetProperty, FStructProperty, FDelegateProperty, FMulticastDelegateProperty, and FVerseDynamicProperty.

◆ IsEditorOnlyProperty()

UE_FORCEINLINE_HINT bool FProperty::IsEditorOnlyProperty ( ) const
inline

Editor-only properties are those that only are used with the editor is present or cannot be removed from serialisation. Editor-only properties include: EditorOnly properties Properties that cannot be removed from serialisation are: Boolean properties (may affect GCC_BITFIELD_MAGIC computation) Native properties (native serialisation)

◆ IsInContainer() [1/2]

UE_FORCEINLINE_HINT bool FProperty::IsInContainer ( const UStruct ContainerClass) const
inline

See if the offset of this property is below the supplied container size

◆ IsInContainer() [2/2]

UE_FORCEINLINE_HINT bool FProperty::IsInContainer ( int32  ContainerSize) const
inline

See if the offset of this property is below the supplied container size

◆ IsIntrusiveOptionalValueSet()

bool FProperty::IsIntrusiveOptionalValueSet ( const void Data) const
virtual

Returns whether an optional value of this inner type is unset. Only valid to call if HasIntrusiveUnsetOptionalState returns true. Equivalent to TOptional<T>::IsSet()

See also
operator==(FIntrusiveUnsetOptionalState)
Parameters
DataAddress of value to inspect, already offset.
Returns
true if the value is unset

Reimplemented in TProperty< double, FNumericProperty >, TProperty< FFieldPath, FProperty >, TProperty< FLazyObjectPtr, FObjectPropertyBase >, TProperty< float, FNumericProperty >, TProperty< FMulticastScriptDelegate, FMulticastDelegateProperty >, TProperty< FName, FProperty >, TProperty< FScriptArray, FProperty >, TProperty< FScriptDelegate, FProperty >, TProperty< FScriptInterface, FProperty >, TProperty< FScriptMap, FProperty >, TProperty< FScriptSet, FProperty >, TProperty< FSoftObjectPtr, FObjectPropertyBase >, TProperty< FSparseDelegate, FMulticastDelegateProperty >, TProperty< FText, FProperty >, TProperty< FWeakObjectPtr, FObjectPropertyBase >, TProperty< int16, FNumericProperty >, TProperty< int32, FNumericProperty >, TProperty< int64, FNumericProperty >, TProperty< int8, FNumericProperty >, TProperty< InTCppType, FMulticastDelegateProperty >, TProperty< InTCppType, FNumericProperty >, TProperty< InTCppType, FObjectPropertyBase >, TProperty< TObjectPtr< UObject >, FObjectPropertyBase >, TProperty< UE::FDynamicallyTypedValue, FProperty >, TProperty< UE_STRPROPERTY_STRINGTYPE, FProperty >, TProperty< uint16, FNumericProperty >, TProperty< uint32, FNumericProperty >, TProperty< uint64, FNumericProperty >, TProperty< uint8, FNumericProperty >, FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

◆ Link()

int32 FProperty::Link ( FArchive Ar)
inline

◆ LinkInternal()

◆ LinkWithoutChangingOffset()

void FProperty::LinkWithoutChangingOffset ( FArchive Ar)
inline

◆ LoadTypeName()

bool FProperty::LoadTypeName ( UE::FPropertyTypeName  Type,
const FPropertyTag Tag = nullptr 
)
virtual

Restores this property and its owned properties from the type name.

Returns
true if this property loaded from the type name and is in a valid and usable state.

Reimplemented in FEnumProperty, FOptionalProperty, FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

◆ PerformOperationWithGetter()

void FProperty::PerformOperationWithGetter ( void OutContainer,
const void DirectPropertyAddress,
TFunctionRef< void(const void *)>  DirectValueAccessFunc 
) const

Helper function for getting container / struct property value and performing operation directly on the value memory

Parameters
OutContainerPointer to the container that owns the property. Can be null but then setters and getters will not be used.
DirectPropertyAddressDirect property value address. Can be null only if OutContainer is a valid pointer.
DirectValueAccessFuncFunction that manipulates directly on property value address. The value address can be different than the passed in DirectPropertyAddress if setters and getters are present and OutContainer pointer is valid.

◆ PerformOperationWithSetter()

void FProperty::PerformOperationWithSetter ( void OutContainer,
void DirectPropertyAddress,
TFunctionRef< void(void *)>  DirectValueAccessFunc 
) const

Helper function for setting container / struct property value and performing operation directly on the value memory

Parameters
OutContainerPointer to the container that owns the property. Can be null but then setters and getters will not be used.
DirectPropertyAddressDirect property value address. Can be null only if OutContainer is a valid pointer.
DirectValueAccessFuncFunction that manipulates directly on property value address. The value address can be different than the passed in DirectPropertyAddress if setters and getters are present and OutContainer pointer is valid.

◆ PointerToValuePtr()

void * FProperty::PointerToValuePtr ( void const *  ContainerOrPropertyPtr,
EPropertyPointerType  PropertyPointerType,
int32  ArrayIndex = 0 
) const
inlineprotected

◆ PostDuplicate()

void FProperty::PostDuplicate ( const FField InField)
overridevirtual

◆ ResolveVisitedPathInfo()

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

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

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

Reimplemented in FOptionalProperty, FObjectPropertyBase, FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

◆ SameType()

bool FProperty::SameType ( const FProperty Other) const
virtual

◆ SaveTypeName()

void FProperty::SaveTypeName ( UE::FPropertyTypeNameBuilder Type) const
virtual

Saves the type name of this property and its owned properties.

Reimplemented in FEnumProperty, FOptionalProperty, FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

◆ Serialize()

◆ SerializeBinProperty()

void FProperty::SerializeBinProperty ( FStructuredArchive::FSlot  Slot,
void Data,
int32  ArrayIdx = -1 
)
inline

Serializes the property with the struct's data residing in Data.

Parameters
Arthe archive to use for serialization
Datapointer to the location of the beginning of the struct's property data
ArrayIdxif not -1 (default), only this array slot will be serialized

◆ SerializeNonMatchingBinProperty()

void FProperty::SerializeNonMatchingBinProperty ( FStructuredArchive::FSlot  Slot,
void Data,
void const *  DefaultData,
UStruct DefaultStruct 
)
inline

Serializes the property with the struct's data residing in Data, unless it matches the default

Parameters
Arthe archive to use for serialization
Datapointer to the location of the beginning of the struct's property data
DefaultDatapointer to the location of the beginning of the data that should be compared against
DefaultStructstruct corresponding to the block of memory located at DefaultData

◆ SetBlueprintReplicationCondition()

void FProperty::SetBlueprintReplicationCondition ( ELifetimeCondition  InBlueprintReplicationCondition)
inline

◆ SetElementSize()

void FProperty::SetElementSize ( int32  NewSize)

◆ SetOffset_Internal()

void FProperty::SetOffset_Internal ( int32  NewOffset)
protected

Set the alignment offset for this property - added for FMapProperty

◆ SetPropertyFlags()

UE_FORCEINLINE_HINT void FProperty::SetPropertyFlags ( EPropertyFlags  NewFlags)
inline

◆ SetSingleValue_InContainer()

void FProperty::SetSingleValue_InContainer ( void OutContainer,
const void InValue,
int32  ArrayIndex 
) const

Copies a single value to the property even if the property represents a static array of values

Parameters
OutContainerInstance owner of the property
InValuePointer to the memory that the value will be copied from. Must be at least ElementSize big
ArrayIndexIndex into the static array to copy the value from. If the property is not a static array it should be 0

◆ SetValue_InContainer()

void FProperty::SetValue_InContainer ( void OutContainer,
const void InValue 
) const
inline

◆ ShouldDuplicateValue()

bool FProperty::ShouldDuplicateValue ( ) const
inline

Determines whether this property value is eligible for copying when duplicating an object

Returns
true if this property value should be copied into the duplicate object

◆ ShouldPort()

bool FProperty::ShouldPort ( uint32  PortFlags = 0) const

◆ ShouldSerializeValue()

bool FProperty::ShouldSerializeValue ( FArchive Ar) const

◆ SupportsNetSharedSerialization()

bool FProperty::SupportsNetSharedSerialization ( ) const
virtual

◆ UseBinaryOrNativeSerialization()

bool FProperty::UseBinaryOrNativeSerialization ( const FArchive Ar) const
virtual

◆ ValidateImportFlags()

bool FProperty::ValidateImportFlags ( uint32  PortFlags,
FOutputDevice ErrorHandler = NULL 
) const

Verify that modifying this property's value via ImportText is allowed.

Parameters
PortFlagsthe flags specified in the call to ImportText
ErrorText[out] set to the error message that should be displayed if returns false
Returns
true if ImportText should be allowed

Verify that modifying this property's value via ImportText is allowed.

Parameters
PortFlagsthe flags specified in the call to ImportText
Returns
true if ImportText should be allowed

◆ Visit() [1/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() [2/3]

◆ Visit() [3/3]

EPropertyVisitorControlFlow FProperty::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 containes the path that was computed until we reached this property and the sata 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 FOptionalProperty, FObjectPropertyBase, FArrayProperty, FMapProperty, FSetProperty, and FStructProperty.

Friends And Related Symbol Documentation

◆ FMapProperty

friend class FMapProperty
friend

◆ UE::CoreUObject::Private::ExportEnumToBuffer

void UE::CoreUObject::Private::ExportEnumToBuffer ( const UEnum Enum,
const FProperty Prop,
const FNumericProperty NumericProp,
FString &  ValueStr,
const void PropertyValueOrContainer,
EPropertyPointerType  PropertyPointerType,
const void DefaultValue,
UObject Parent,
int32  PortFlags,
UObject ExportRootScope 
)
friend

◆ UE::CoreUObject::Private::ImportEnumFromBuffer

const TCHAR * UE::CoreUObject::Private::ImportEnumFromBuffer ( UEnum Enum,
const FProperty PropertyToSet,
const FNumericProperty UnderlyingProp,
const TCHAR PropertyClassName,
const TCHAR Buffer,
void ContainerOrPropertyPtr,
EPropertyPointerType  PropertyPointerType,
FOutputDevice ErrorText 
)
friend

◆ UEProperty_Private::FProperty_DoNotUse

Member Data Documentation

◆ [union]

union { ... } FProperty

◆ [union]

union { ... } FProperty

◆ DestructorLinkNext

FProperty* FProperty::DestructorLinkNext = nullptr

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

◆ GetCPPType

virtual FString FProperty::GetCPPType(FString *ExtendedTypeText=NULL, uint32 CPPExportFlags=0) const PURE_VIRTUAL(FProperty

Returns the text to use for exporting this property to header file.

Parameters
ExtendedTypeTextfor property types which use templates, will be filled in with the type
CPPExportFlagsflags for modifying the behavior of the export

◆ Identical

virtual bool FProperty::Identical(const void *A, const void *B, uint32 PortFlags=0) const PURE_VIRTUAL(FProperty

Determines whether the property values are identical.

Parameters
Aproperty data to be compared, already offset
Bproperty data to be compared, already offset
PortFlagsallows caller more control over how the property values are compared
Returns
true if the property values are identical

◆ ImportText_Internal

virtual void virtual ExportText_Internal (FString& ValueStr, const void* PropertyValueOrContainer, EPropertyPointerType PointerType, const void* DefaultValue, UObject* Parent, int32 PortFlags, UObject* ExportRootScope = nullptr) const PURE_VIRTUAL(FProperty const TCHAR FProperty::ImportText_Internal) (const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PointerType, UObject *OwnerObject, int32 PortFlags, FOutputDevice *ErrorText) const PURE_VIRTUAL(FProperty
protected

◆ NetSerializeItem

bool FProperty::NetSerializeItem

◆ NextRef

FProperty* FProperty::NextRef = nullptr

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

◆ PostConstructLinkNext

FProperty* FProperty::PostConstructLinkNext = nullptr

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

◆ PropertyFlags

EPropertyFlags FProperty::PropertyFlags

◆ PropertyLinkNext

FProperty* FProperty::PropertyLinkNext = nullptr

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

◆ RepIndex

uint16 FProperty::RepIndex

◆ RepNotifyFunc

FName FProperty::RepNotifyFunc

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