UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UScriptStruct::ICppStructOps Struct Reference

#include <Class.h>

+ Inheritance diagram for UScriptStruct::ICppStructOps:

Public Types

using FCapabilities = UE::CoreUObject::Private::FCapabilities
 
using PointerToAddStructReferencedObjectsType = void(*)(void *A, FReferenceCollector &Collector)
 
using instead = PointerToAddStructReferencedObjectsType
 

Public Member Functions

constexpr ICppStructOps (int32 InSize, int32 InAlignment)
 
const FCapabilitiesGetCapabilities () const
 
bool HasNoopConstructor () const
 
bool HasZeroConstructor () const
 
void Construct (void *Dest)
 
void ConstructForTests (void *Dest)
 
bool HasDestructor () const
 
void Destruct (void *Dest)
 
UE_FORCEINLINE_HINT int32 GetSize () const
 
UE_FORCEINLINE_HINT int32 GetAlignment () const
 
bool HasSerializer () const
 
bool HasStructuredSerializer () const
 
bool Serialize (FArchive &Ar, void *Data)
 
bool Serialize (FStructuredArchive::FSlot Slot, void *Data)
 
bool Serialize (FArchive &Ar, void *Data, UStruct *DefaultsStruct, const void *Defaults)
 
bool Serialize (FStructuredArchive::FSlot Slot, void *Data, UStruct *DefaultsStruct, const void *Defaults)
 
bool HasPostSerialize () const
 
void PostSerialize (const FArchive &Ar, void *Data)
 
bool HasNetSerializer () const
 
bool HasNetSharedSerialization () const
 
bool NetSerialize (FArchive &Ar, UPackageMap *Map, bool &bOutSuccess, void *Data)
 
bool HasNetDeltaSerializer () const
 
bool NetDeltaSerialize (FNetDeltaSerializeInfo &DeltaParms, void *Data)
 
bool HasPostScriptConstruct () const
 
void PostScriptConstruct (void *Data)
 
bool HasGetPreloadDependencies () const
 
void GetPreloadDependencies (void *Data, TArray< UObject * > &OutDeps)
 
bool IsPlainOldData () const
 
bool IsUECoreType () const
 
bool IsUECoreVariant () const
 
bool HasCopy () const
 
bool Copy (void *Dest, void const *Src, int32 ArrayDim)
 
bool HasIdentical () const
 
bool Identical (const void *A, const void *B, uint32 PortFlags, bool &bOutResult)
 
bool HasExportTextItem () const
 
bool ExportTextItem (FString &ValueStr, const void *PropertyValue, const void *DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope)
 
bool HasImportTextItem () const
 
bool ImportTextItem (const TCHAR *&Buffer, void *Data, int32 PortFlags, UObject *OwnerObject, FOutputDevice *ErrorText)
 
bool HasFindInnerPropertyInstance () const
 
bool FindInnerPropertyInstance (FName PropertyName, const void *Data, const FProperty *&OutProp, const void *&OutData) const
 
bool HasAddStructReferencedObjects () const
 
bool HasSerializerObjectReferences (EPropertyObjectReferenceType Type) const
 
PointerToAddStructReferencedObjectsType AddStructReferencedObjects ()
 
bool HasSerializeFromMismatchedTag () const
 
bool HasStructuredSerializeFromMismatchedTag () const
 
bool SerializeFromMismatchedTag (FPropertyTag const &Tag, FArchive &Ar, void *Data)
 
bool StructuredSerializeFromMismatchedTag (FPropertyTag const &Tag, FStructuredArchive::FSlot Slot, void *Data)
 
bool HasGetTypeHash () const
 
uint32 GetStructTypeHash (const void *Src)
 
EPropertyFlags GetComputedPropertyFlags () const
 
bool IsAbstract () const
 
bool HasClearOnFinishDestroy () const
 
bool HasIntrusiveUnsetOptionalState () const
 
void InitializeIntrusiveUnsetOptionalValue (void *Data) const
 
bool IsIntrusiveOptionalValueSet (const void *Data) const
 
void ClearIntrusiveOptionalValue (void *Data) const
 
bool IsIntrusiveOptionalSafeForGC () const
 
bool HasVisitor () const
 
EPropertyVisitorControlFlow Visit (FPropertyVisitorContext &Context, const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &Context)> InFunc) const
 
voidResolveVisitedPathInfo (void *Data, const FPropertyVisitorInfo &Info) const
 

Public Attributes

const UE::CoreUObject::Private::FStructOpsFakeVTableFakeVPtr
 

Detailed Description

Interface to template to manage dynamic access to C++ struct construction and destruction

Member Typedef Documentation

◆ FCapabilities

◆ instead

◆ PointerToAddStructReferencedObjectsType

return a pointer to a function that can add referenced objects

Returns
true if the copy was imported, otherwise it will fall back to FStructProperty::ImportText

Constructor & Destructor Documentation

◆ ICppStructOps()

constexpr UScriptStruct::ICppStructOps::ICppStructOps ( int32  InSize,
int32  InAlignment 
)
inlineconstexpr

Constructor

Parameters
InSizesizeof() of the structure

Member Function Documentation

◆ AddStructReferencedObjects()

PointerToAddStructReferencedObjectsType UScriptStruct::ICppStructOps::AddStructReferencedObjects ( )
inline

◆ ClearIntrusiveOptionalValue()

void UScriptStruct::ICppStructOps::ClearIntrusiveOptionalValue ( void Data) const
inline

Reset an optional value to its unset state

◆ Construct()

void UScriptStruct::ICppStructOps::Construct ( void Dest)
inline

Call the C++ constructor

◆ ConstructForTests()

void UScriptStruct::ICppStructOps::ConstructForTests ( void Dest)
inline

Call the C++ constructor without value-init (new T instead of new T())

◆ Copy()

bool UScriptStruct::ICppStructOps::Copy ( void Dest,
void const *  Src,
int32  ArrayDim 
)
inline

Copy this structure

Returns
true if the copy was handled, otherwise it will fall back to CopySingleValue

◆ Destruct()

void UScriptStruct::ICppStructOps::Destruct ( void Dest)
inline

Call the C++ destructor

◆ ExportTextItem()

bool UScriptStruct::ICppStructOps::ExportTextItem ( FString &  ValueStr,
const void PropertyValue,
const void DefaultValue,
UObject Parent,
int32  PortFlags,
UObject ExportRootScope 
)
inline

export this structure

Returns
true if the copy was exported, otherwise it will fall back to FStructProperty::ExportTextItem

◆ FindInnerPropertyInstance()

bool UScriptStruct::ICppStructOps::FindInnerPropertyInstance ( FName  PropertyName,
const void Data,
const FProperty *&  OutProp,
const void *&  OutData 
) const
inline

◆ GetAlignment()

UE_FORCEINLINE_HINT int32 UScriptStruct::ICppStructOps::GetAlignment ( ) const
inline

return the alignof() of this structure

◆ GetCapabilities()

const FCapabilities & UScriptStruct::ICppStructOps::GetCapabilities ( ) const
inline

returns struct capabilities

◆ GetComputedPropertyFlags()

EPropertyFlags UScriptStruct::ICppStructOps::GetComputedPropertyFlags ( ) const
inline

Returns property flag values that can be computed at compile time

◆ GetPreloadDependencies()

void UScriptStruct::ICppStructOps::GetPreloadDependencies ( void Data,
TArray< UObject * > &  OutDeps 
)
inline

Call PreloadDependencies on this structure

◆ GetSize()

UE_FORCEINLINE_HINT int32 UScriptStruct::ICppStructOps::GetSize ( ) const
inline

return the sizeof() of this structure

◆ GetStructTypeHash()

uint32 UScriptStruct::ICppStructOps::GetStructTypeHash ( const void Src)
inline

Calls GetTypeHash if enabled

◆ HasAddStructReferencedObjects()

bool UScriptStruct::ICppStructOps::HasAddStructReferencedObjects ( ) const
inline

return true if this struct has custom GC code

◆ HasClearOnFinishDestroy()

bool UScriptStruct::ICppStructOps::HasClearOnFinishDestroy ( ) const
inline

return true if this struct has a ClearOnFinishDestroy

◆ HasCopy()

bool UScriptStruct::ICppStructOps::HasCopy ( ) const
inline

return true if this struct can copy

◆ HasDestructor()

bool UScriptStruct::ICppStructOps::HasDestructor ( ) const
inline

return false if this destructor can be skipped

◆ HasExportTextItem()

bool UScriptStruct::ICppStructOps::HasExportTextItem ( ) const
inline

return true if this struct can export

◆ HasFindInnerPropertyInstance()

bool UScriptStruct::ICppStructOps::HasFindInnerPropertyInstance ( ) const
inline

◆ HasGetPreloadDependencies()

bool UScriptStruct::ICppStructOps::HasGetPreloadDependencies ( ) const
inline

return true if this struct has GetPreloadDependencies

◆ HasGetTypeHash()

bool UScriptStruct::ICppStructOps::HasGetTypeHash ( ) const
inline

return true if this struct has a GetTypeHash

◆ HasIdentical()

bool UScriptStruct::ICppStructOps::HasIdentical ( ) const
inline

return true if this struct can compare

◆ HasImportTextItem()

bool UScriptStruct::ICppStructOps::HasImportTextItem ( ) const
inline

return true if this struct can import

◆ HasIntrusiveUnsetOptionalState()

bool UScriptStruct::ICppStructOps::HasIntrusiveUnsetOptionalState ( ) const
inline

Return true if this type can be constructed with FIntrusiveUnsetOptionalState for TOptional

◆ HasNetDeltaSerializer()

bool UScriptStruct::ICppStructOps::HasNetDeltaSerializer ( ) const
inline

return true if this struct can net delta serialize delta (serialize a network delta from a base state)

◆ HasNetSerializer()

bool UScriptStruct::ICppStructOps::HasNetSerializer ( ) const
inline

return true if this struct can net serialize

◆ HasNetSharedSerialization()

bool UScriptStruct::ICppStructOps::HasNetSharedSerialization ( ) const
inline

return true if this can share net serialization across connections

◆ HasNoopConstructor()

bool UScriptStruct::ICppStructOps::HasNoopConstructor ( ) const
inline

return true if this class has a no-op constructor and takes EForceInit to init

◆ HasPostScriptConstruct()

bool UScriptStruct::ICppStructOps::HasPostScriptConstruct ( ) const
inline

return true if this class implements a post script construct call

◆ HasPostSerialize()

bool UScriptStruct::ICppStructOps::HasPostSerialize ( ) const
inline

return true if this class implements a post serialize call

◆ HasSerializeFromMismatchedTag()

bool UScriptStruct::ICppStructOps::HasSerializeFromMismatchedTag ( ) const
inline

return true if this class wants to serialize from some other tag (usually for conversion purposes)

◆ HasSerializer()

bool UScriptStruct::ICppStructOps::HasSerializer ( ) const
inline

return true if this class can serialize

◆ HasSerializerObjectReferences()

bool UScriptStruct::ICppStructOps::HasSerializerObjectReferences ( EPropertyObjectReferenceType  Type) const
inline

returns true if the native serialize functions may serialize object references of the given type

◆ HasStructuredSerializeFromMismatchedTag()

bool UScriptStruct::ICppStructOps::HasStructuredSerializeFromMismatchedTag ( ) const
inline

◆ HasStructuredSerializer()

bool UScriptStruct::ICppStructOps::HasStructuredSerializer ( ) const
inline

return true if this class can serialize to a structured archive

◆ HasVisitor()

bool UScriptStruct::ICppStructOps::HasVisitor ( ) const
inline

Returns true if this struct wants to indicate whether it has a custom impl for visiting properties

◆ HasZeroConstructor()

bool UScriptStruct::ICppStructOps::HasZeroConstructor ( ) const
inline

return true if memset can be used instead of the constructor

◆ Identical()

bool UScriptStruct::ICppStructOps::Identical ( const void A,
const void B,
uint32  PortFlags,
bool bOutResult 
)
inline

Compare this structure

Returns
true if the comparison was performed. bOutResult contains the result of the comparison.

◆ ImportTextItem()

bool UScriptStruct::ICppStructOps::ImportTextItem ( const TCHAR *&  Buffer,
void Data,
int32  PortFlags,
UObject OwnerObject,
FOutputDevice ErrorText 
)
inline

import this structure

Returns
true if the copy was imported, otherwise it will fall back to FStructProperty::ImportText

◆ InitializeIntrusiveUnsetOptionalValue()

void UScriptStruct::ICppStructOps::InitializeIntrusiveUnsetOptionalValue ( void Data) const
inline

Construct an unset optional value

◆ IsAbstract()

bool UScriptStruct::ICppStructOps::IsAbstract ( ) const
inline

return true if this struct is abstract

◆ IsIntrusiveOptionalSafeForGC()

bool UScriptStruct::ICppStructOps::IsIntrusiveOptionalSafeForGC ( ) const
inline

Used for assertions only: confirms that this type has certified that its object reference fields are safe for the GC to visit while the struct is in its intrusive unset optional state.

◆ IsIntrusiveOptionalValueSet()

bool UScriptStruct::ICppStructOps::IsIntrusiveOptionalValueSet ( const void Data) const
inline

Return true if the optional value at Data is in an unset state

◆ IsPlainOldData()

bool UScriptStruct::ICppStructOps::IsPlainOldData ( ) const
inline

return true if this struct should be memcopied

◆ IsUECoreType()

bool UScriptStruct::ICppStructOps::IsUECoreType ( ) const
inline

return true if this struct is one of the UE Core types (and is include in CoreMinimal.h)

◆ IsUECoreVariant()

bool UScriptStruct::ICppStructOps::IsUECoreVariant ( ) const
inline

return true if this struct is one of the UE Core types (and is include in CoreMinimal.h)

◆ NetDeltaSerialize()

bool UScriptStruct::ICppStructOps::NetDeltaSerialize ( FNetDeltaSerializeInfo DeltaParms,
void Data 
)
inline

Net serialize delta this structure. Serialize a network delta from a base state

Returns
true if the struct was serialized, otherwise it will fall back to ordinary script struct net delta serialization

◆ NetSerialize()

bool UScriptStruct::ICppStructOps::NetSerialize ( FArchive Ar,
UPackageMap Map,
bool bOutSuccess,
void Data 
)
inline

Net serialize this structure

Returns
true if the struct was serialized, otherwise it will fall back to ordinary script struct net serialization

◆ PostScriptConstruct()

void UScriptStruct::ICppStructOps::PostScriptConstruct ( void Data)
inline

Call PostScriptConstruct on this structure

◆ PostSerialize()

void UScriptStruct::ICppStructOps::PostSerialize ( const FArchive Ar,
void Data 
)
inline

Call PostSerialize on this structure

◆ ResolveVisitedPathInfo()

void * UScriptStruct::ICppStructOps::ResolveVisitedPathInfo ( void Data,
const FPropertyVisitorInfo Info 
) const
inline

◆ Serialize() [1/4]

bool UScriptStruct::ICppStructOps::Serialize ( FArchive Ar,
void Data 
)
inline

◆ Serialize() [2/4]

bool UScriptStruct::ICppStructOps::Serialize ( FArchive Ar,
void Data,
UStruct DefaultsStruct,
const void Defaults 
)
inline

Serialize this structure.

Returns
true if serialization was handled, false to fall back to standard script struct serialization.

◆ Serialize() [3/4]

bool UScriptStruct::ICppStructOps::Serialize ( FStructuredArchive::FSlot  Slot,
void Data 
)
inline

◆ Serialize() [4/4]

bool UScriptStruct::ICppStructOps::Serialize ( FStructuredArchive::FSlot  Slot,
void Data,
UStruct DefaultsStruct,
const void Defaults 
)
inline

◆ SerializeFromMismatchedTag()

bool UScriptStruct::ICppStructOps::SerializeFromMismatchedTag ( FPropertyTag const &  Tag,
FArchive Ar,
void Data 
)
inline

Serialize this structure, from some other tag

Returns
true if this succeeded, false will trigger a warning and not serialize at all

◆ StructuredSerializeFromMismatchedTag()

bool UScriptStruct::ICppStructOps::StructuredSerializeFromMismatchedTag ( FPropertyTag const &  Tag,
FStructuredArchive::FSlot  Slot,
void Data 
)
inline

◆ Visit()

EPropertyVisitorControlFlow UScriptStruct::ICppStructOps::Visit ( FPropertyVisitorContext Context,
const TFunctionRef< EPropertyVisitorControlFlow(const FPropertyVisitorContext &Context)>  InFunc 
) const
inline

Structs property visitor signature

Member Data Documentation

◆ FakeVPtr

const UE::CoreUObject::Private::FStructOpsFakeVTable* UScriptStruct::ICppStructOps::FakeVPtr

The documentation for this struct was generated from the following file: