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

#include <PropertyOptional.h>

+ Inheritance diagram for FOptionalProperty:

Public Member Functions

UE_API FOptionalProperty (FFieldVariant InOwner, const FName &InName, EObjectFlags InObjectFlags)
 
UE_API FOptionalProperty (FFieldVariant InOwner, const UECodeGen_Private::FGenericPropertyParams &Prop)
 
virtual UE_API ~FOptionalProperty ()
 
UE_API void SetValueProperty (FProperty *InValueProperty)
 
virtual UE_API void Serialize (FArchive &Ar) override
 
virtual UE_API void GetPreloadDependencies (TArray< UObject * > &OutDeps) override
 
virtual UE_API void PostDuplicate (const FField &InField) override
 
virtual UE_API FFieldGetInnerFieldByName (const FName &InName) override
 
virtual UE_API void GetInnerFields (TArray< FField * > &OutFields) override
 
virtual UE_API void AddCppProperty (FProperty *Property) override
 
virtual UE_API FString GetCPPType (FString *ExtendedTypeText=NULL, uint32 CPPExportFlags=0) const override
 
virtual UE_API FString GetCPPMacroType (FString &ExtendedTypeText) const override
 
virtual UE_API void LinkInternal (FArchive &Ar) override
 
virtual UE_API bool Identical (const void *A, const void *B, uint32 PortFlags) const override
 
virtual UE_API void SerializeItem (FStructuredArchive::FSlot Slot, void *Value, void const *Defaults) const override
 
virtual UE_API bool NetSerializeItem (FArchive &Ar, UPackageMap *Map, void *Data, TArray< uint8 > *MetaData=NULL) const override
 
virtual UE_API bool SupportsNetSharedSerialization () const override
 
virtual UE_API void ExportText_Internal (FString &ValueStr, const void *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope) const override
 
virtual UE_API const TCHARImportText_Internal (const TCHAR *Buffer, void *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, UObject *Parent, int32 PortFlags, FOutputDevice *ErrorText) const override
 
virtual UE_API void CopyValuesInternal (void *Dest, void const *Src, int32 Count) const override
 
virtual UE_API void ClearValueInternal (void *Data) const override
 
virtual UE_API void InitializeValueInternal (void *Data) const override
 
virtual UE_API void DestroyValueInternal (void *Data) const override
 
virtual UE_API bool ContainsClearOnFinishDestroyInternal (TArray< const FStructProperty * > &EncounteredStructProps) const override
 
virtual UE_API void FinishDestroyInternal (void *Data) const override
 
virtual UE_API void InstanceSubobjects (void *Data, void const *DefaultData, TNotNull< UObject * > Owner, struct FObjectInstancingGraph *InstanceGraph) override
 
virtual UE_API int32 GetMinAlignment () const override
 
virtual UE_API bool ContainsObjectReference (TArray< const FStructProperty * > &EncounteredStructProps, EPropertyObjectReferenceType InReferenceType=EPropertyObjectReferenceType::Strong) const override
 
virtual UE_API void EmitReferenceInfo (UE::GC::FSchemaBuilder &Schema, int32 BaseOffset, TArray< const FStructProperty * > &EncounteredStructProps, UE::GC::FPropertyStack &DebugPath) override
 
virtual UE_API EConvertFromTypeResult ConvertFromType (const FPropertyTag &Tag, FStructuredArchive::FSlot Slot, uint8 *Data, const UStruct *DefaultsStruct, const uint8 *Defaults) override
 
virtual UE_API uint32 GetValueTypeHashInternal (const void *Src) const override
 
virtual UE_API void AddReferencedObjects (FReferenceCollector &Collector) override
 
virtual UE_API bool UseBinaryOrNativeSerialization (const FArchive &Ar) const override
 
virtual UE_API bool LoadTypeName (UE::FPropertyTypeName Type, const FPropertyTag *Tag=nullptr) override
 
virtual UE_API void SaveTypeName (UE::FPropertyTypeNameBuilder &Type) const override
 
virtual UE_API bool CanSerializeFromTypeName (UE::FPropertyTypeName Type) const override
 
virtual UE_API bool HasIntrusiveUnsetOptionalState () const override
 
virtual UE_API bool SameType (const FProperty *Other) const override
 
virtual UE_API EPropertyVisitorControlFlow Visit (FPropertyVisitorContext &Context, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)> InFunc) const override
 
virtual UE_API voidResolveVisitedPathInfo (void *Data, const FPropertyVisitorInfo &Info) const override
 
- Public Member Functions inherited from FProperty
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
 
COREUOBJECT_API FString GetNameCPP () 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
 
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)
 
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)
 
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
 
bool ContainsWeakObjectReference () const
 
UE_FORCEINLINE_HINT bool ContainsInstancedObjectProperty () const
 
UE_FORCEINLINE_HINT int32 GetSize () const
 
COREUOBJECT_API bool ShouldSerializeValue (FArchive &Ar) const
 
bool ShouldDuplicateValue () 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
 
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 BeginDestroy ()
 
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 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
 
- Public Member Functions inherited from FOptionalPropertyLayout
constexpr FOptionalPropertyLayout (FProperty *InValueProperty)
 
FPropertyGetValueProperty () const
 
bool IsSet (const void *Data) const
 
voidMarkSetAndGetInitializedValuePointerToReplace (void *Data) const
 
void MarkUnset (void *Data) const
 
const voidGetValuePointerForRead (const void *Data) const
 
voidGetValuePointerForReplace (void *Data) const
 
const voidGetValuePointerForReadIfSet (const void *Data) const
 
voidGetValuePointerForReplaceIfSet (void *Data) const
 
const voidGetValuePointerForReadOrReplace (const void *Data) const
 
voidGetValuePointerForReadOrReplace (void *Data) const
 
const voidGetValuePointerForReadOrReplaceIfSet (const void *Data) const
 
voidGetValuePointerForReadOrReplaceIfSet (void *Data) const
 
int32 CalcSize () const
 

Additional Inherited Members

- Public Types inherited from FField
typedef FField Super
 
typedef FField ThisClass
 
typedef FField BaseFieldClass
 
typedef FFieldClass FieldTypeClass
 
using FLinkedListBuilder = TLinkedListBuilder< FField >
 
- Static Public Member Functions inherited from FProperty
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 inherited from FProperty
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 inherited from FProperty
COREUOBJECT_API void SetOffset_Internal (int32 NewOffset)
 
COREUOBJECT_API void Init ()
 
voidPointerToValuePtr (void const *ContainerOrPropertyPtr, EPropertyPointerType PropertyPointerType, int32 ArrayIndex=0) const
 
- Protected Member Functions inherited from FField
void SetFlagsTo (EObjectFlags NewFlags)
 
- Protected Member Functions inherited from FOptionalPropertyLayout
constexpr FOptionalPropertyLayout ()
 
int32 CalcIsSetOffset () const
 
UE_FORCEINLINE_HINT boolGetIsSetPointer (void *Data) const
 
UE_FORCEINLINE_HINT const boolGetIsSetPointer (const void *Data) const
 
- Protected Attributes inherited from FProperty
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
 
- Protected Attributes inherited from FOptionalPropertyLayout
FPropertyValueProperty
 

Constructor & Destructor Documentation

◆ FOptionalProperty() [1/2]

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

◆ FOptionalProperty() [2/2]

FOptionalProperty::FOptionalProperty ( FFieldVariant  InOwner,
const UECodeGen_Private::FGenericPropertyParams &  Prop 
)

◆ ~FOptionalProperty()

FOptionalProperty::~FOptionalProperty ( )
virtual

Member Function Documentation

◆ AddCppProperty()

void FOptionalProperty::AddCppProperty ( FProperty Property)
overridevirtual

Reimplemented from FField.

◆ AddReferencedObjects()

void FOptionalProperty::AddReferencedObjects ( FReferenceCollector Collector)
overridevirtual

Reimplemented from FField.

◆ CanSerializeFromTypeName()

bool FOptionalProperty::CanSerializeFromTypeName ( UE::FPropertyTypeName  Type) const
overridevirtual

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

Reimplemented from FProperty.

◆ ClearValueInternal()

void FOptionalProperty::ClearValueInternal ( void Data) const
overridevirtual

Reimplemented from FProperty.

◆ ContainsClearOnFinishDestroyInternal()

bool FOptionalProperty::ContainsClearOnFinishDestroyInternal ( TArray< const FStructProperty * > &  EncounteredStructProps) const
overridevirtual

Reimplemented from FProperty.

◆ ContainsObjectReference()

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

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 from FProperty.

◆ ConvertFromType()

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

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 from FProperty.

◆ CopyValuesInternal()

void FOptionalProperty::CopyValuesInternal ( void Dest,
void const *  Src,
int32  Count 
) const
overridevirtual

Reimplemented from FProperty.

◆ DestroyValueInternal()

void FOptionalProperty::DestroyValueInternal ( void Data) const
overridevirtual

Reimplemented from FProperty.

◆ EmitReferenceInfo()

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

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 from FProperty.

◆ ExportText_Internal()

void FOptionalProperty::ExportText_Internal ( FString &  ValueStr,
const void ContainerOrPropertyPtr,
EPropertyPointerType  PropertyPointerType,
const void DefaultValue,
UObject Parent,
int32  PortFlags,
UObject ExportRootScope 
) const
overridevirtual

◆ FinishDestroyInternal()

void FOptionalProperty::FinishDestroyInternal ( void Data) const
overridevirtual

Reimplemented from FProperty.

◆ GetCPPMacroType()

FString FOptionalProperty::GetCPPMacroType ( FString &  ExtendedTypeText) const
overridevirtual

Reimplemented from FProperty.

◆ GetCPPType()

FString FOptionalProperty::GetCPPType ( FString *  ExtendedTypeText = NULL,
uint32  CPPExportFlags = 0 
) const
overridevirtual

◆ GetInnerFieldByName()

FField * FOptionalProperty::GetInnerFieldByName ( const FName InName)
overridevirtual

Returns an inner field by name if the field has any

Reimplemented from FField.

◆ GetInnerFields()

void FOptionalProperty::GetInnerFields ( TArray< FField * > &  OutFields)
overridevirtual

Fills the provided array with all inner fields this field owns (recursively)

Reimplemented from FField.

◆ GetMinAlignment()

int32 FOptionalProperty::GetMinAlignment ( ) const
overridevirtual

Reimplemented from FProperty.

◆ GetPreloadDependencies()

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

Reimplemented from FField.

◆ GetValueTypeHashInternal()

uint32 FOptionalProperty::GetValueTypeHashInternal ( const void Src) const
overridevirtual

Reimplemented from FProperty.

◆ HasIntrusiveUnsetOptionalState()

bool FOptionalProperty::HasIntrusiveUnsetOptionalState ( ) const
overridevirtual

◆ Identical()

bool FOptionalProperty::Identical ( const void A,
const void B,
uint32  PortFlags 
) const
overridevirtual

◆ ImportText_Internal()

const TCHAR * FOptionalProperty::ImportText_Internal ( const TCHAR Buffer,
void ContainerOrPropertyPtr,
EPropertyPointerType  PropertyPointerType,
UObject Parent,
int32  PortFlags,
FOutputDevice ErrorText 
) const
overridevirtual

◆ InitializeValueInternal()

void FOptionalProperty::InitializeValueInternal ( void Data) const
overridevirtual

Reimplemented from FProperty.

◆ InstanceSubobjects()

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

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 from FProperty.

◆ LinkInternal()

void FOptionalProperty::LinkInternal ( FArchive Ar)
overridevirtual

Reimplemented from FProperty.

◆ LoadTypeName()

bool FOptionalProperty::LoadTypeName ( UE::FPropertyTypeName  Type,
const FPropertyTag Tag = nullptr 
)
overridevirtual

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 from FProperty.

◆ NetSerializeItem()

bool FOptionalProperty::NetSerializeItem ( FArchive Ar,
UPackageMap Map,
void Data,
TArray< uint8 > *  MetaData = NULL 
) const
overridevirtual

◆ PostDuplicate()

void FOptionalProperty::PostDuplicate ( const FField InField)
overridevirtual

Fixups after duplicating a Field

Reimplemented from FProperty.

◆ ResolveVisitedPathInfo()

void * FOptionalProperty::ResolveVisitedPathInfo ( void Data,
const FPropertyVisitorInfo Info 
) const
overridevirtual

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 from FProperty.

◆ SameType()

bool FOptionalProperty::SameType ( const FProperty Other) const
overridevirtual

returns true, if Other is property of exactly the same type

Reimplemented from FProperty.

◆ SaveTypeName()

void FOptionalProperty::SaveTypeName ( UE::FPropertyTypeNameBuilder Type) const
overridevirtual

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

Reimplemented from FProperty.

◆ Serialize()

void FOptionalProperty::Serialize ( FArchive Ar)
overridevirtual

Reimplemented from FProperty.

◆ SerializeItem()

void FOptionalProperty::SerializeItem ( FStructuredArchive::FSlot  Slot,
void Value,
void const *  Defaults 
) const
overridevirtual

◆ SetValueProperty()

void FOptionalProperty::SetValueProperty ( FProperty InValueProperty)

◆ SupportsNetSharedSerialization()

bool FOptionalProperty::SupportsNetSharedSerialization ( ) const
overridevirtual

Reimplemented from FProperty.

◆ UseBinaryOrNativeSerialization()

bool FOptionalProperty::UseBinaryOrNativeSerialization ( const FArchive Ar) const
overridevirtual

Reimplemented from FProperty.

◆ Visit()

EPropertyVisitorControlFlow FOptionalProperty::Visit ( FPropertyVisitorContext Context,
const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &)>  InFunc 
) const
overridevirtual

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 from FProperty.


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