UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TInstancedStruct< BaseStructT > Struct Template Reference

#include <InstancedStruct.h>

Public Member Functions

 TInstancedStruct ()=default
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
 TInstancedStruct (const TConstStructView< T > InOther)
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
 TInstancedStruct (const UScriptStruct *InScriptStruct)
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
 TInstancedStruct (const TInstancedStruct< T > &InOther)
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
 TInstancedStruct (TInstancedStruct< T > &&InOther)
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStructoperator= (const TConstStructView< T > InOther)
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStructoperator= (const TInstancedStruct< T > &InOther)
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStructoperator= (TInstancedStruct< T > &&InOther)
 
void InitializeAsScriptStruct (const UScriptStruct *InScriptStruct, const uint8 *InStructMemory=nullptr)
 
template<typename T = BaseStructT, typename... TArgs, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
void InitializeAs (TArgs &&... InArgs)
 
const UScriptStructGetScriptStruct () const
 
const uint8GetMemory () const
 
void Reset ()
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
const T & Get () const
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
const T * GetPtr () const
 
uint8GetMutableMemory ()
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
T & GetMutable ()
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
T * GetMutablePtr ()
 
bool IsValid () const
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
bool operator== (const TInstancedStruct< T > &Other) const
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
bool operator!= (const TInstancedStruct< T > &Other) const
 
void AddReferencedObjects (FReferenceCollector &Collector)
 
bool Serialize (FArchive &Ar)
 
bool NetSerialize (FArchive &Ar, UPackageMap *Map, bool &bOutSuccess)
 

Static Public Member Functions

template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
static TInstancedStruct Make ()
 
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
static TInstancedStruct Make (const T &Struct)
 
template<typename T = BaseStructT, typename... TArgs, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
static TInstancedStruct Make (TArgs &&... InArgs)
 

Friends

template<typename U >
struct TInstancedStruct
 

Detailed Description

template<typename BaseStructT>
struct TInstancedStruct< BaseStructT >

TInstancedStruct is a type-safe FInstancedStruct wrapper against the given BaseStruct type.

Note
When used as a property, this automatically defines the BaseStruct property meta-data.

Example:

UPROPERTY(EditAnywhere, Category = Foo) TInstancedStruct<FTestStructBase> Test;

UPROPERTY(EditAnywhere, Category = Foo) TArray<TInstancedStruct<FTestStructBase>> TestArray;

Examples
/work/Engine/Source/Runtime/UMG/Public/Components/Widget.h.

Constructor & Destructor Documentation

◆ TInstancedStruct() [1/5]

◆ TInstancedStruct() [2/5]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStruct< BaseStructT >::TInstancedStruct ( const TConstStructView< T >  InOther)
inlineexplicit

This constructor is explicit to avoid accidentally converting struct views to instanced structs (which would result in costly copy of the struct to be made). Implicit conversion could happen e.g. when comparing TInstancedStruct to TConstStructView.

◆ TInstancedStruct() [3/5]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStruct< BaseStructT >::TInstancedStruct ( const UScriptStruct InScriptStruct)
inlineexplicit

◆ TInstancedStruct() [4/5]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStruct< BaseStructT >::TInstancedStruct ( const TInstancedStruct< T > &  InOther)
inline

◆ TInstancedStruct() [5/5]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStruct< BaseStructT >::TInstancedStruct ( TInstancedStruct< T > &&  InOther)
inline

Member Function Documentation

◆ AddReferencedObjects()

template<typename BaseStructT >
void TInstancedStruct< BaseStructT >::AddReferencedObjects ( FReferenceCollector Collector)
inline

◆ Get()

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
const T & TInstancedStruct< BaseStructT >::Get ( ) const
inline

Returns const reference to the struct, this getter assumes that all data is valid.

◆ GetMemory()

template<typename BaseStructT >
const uint8 * TInstancedStruct< BaseStructT >::GetMemory ( ) const
inline

Returns const pointer to raw struct memory.

◆ GetMutable()

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
T & TInstancedStruct< BaseStructT >::GetMutable ( )
inline

Returns mutable reference to the struct, this getter assumes that all data is valid.

◆ GetMutableMemory()

template<typename BaseStructT >
uint8 * TInstancedStruct< BaseStructT >::GetMutableMemory ( )
inline

Returns a mutable pointer to raw struct memory.

◆ GetMutablePtr()

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
T * TInstancedStruct< BaseStructT >::GetMutablePtr ( )
inline

Returns mutable pointer to the struct, or nullptr if cast is not valid.

◆ GetPtr()

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
const T * TInstancedStruct< BaseStructT >::GetPtr ( ) const
inline

Returns const pointer to the struct, or nullptr if cast is not valid.

◆ GetScriptStruct()

template<typename BaseStructT >
const UScriptStruct * TInstancedStruct< BaseStructT >::GetScriptStruct ( ) const
inline

Returns struct type.

◆ InitializeAs()

template<typename BaseStructT >
template<typename T = BaseStructT, typename... TArgs, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
void TInstancedStruct< BaseStructT >::InitializeAs ( TArgs &&...  InArgs)
inline

Initializes from struct type and emplace construct.

◆ InitializeAsScriptStruct()

template<typename BaseStructT >
void TInstancedStruct< BaseStructT >::InitializeAsScriptStruct ( const UScriptStruct InScriptStruct,
const uint8 InStructMemory = nullptr 
)
inline

Initializes from a raw struct type and optional data.

◆ IsValid()

template<typename BaseStructT >
bool TInstancedStruct< BaseStructT >::IsValid ( ) const
inline

Returns True if the struct is valid.

◆ Make() [1/3]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
static TInstancedStruct TInstancedStruct< BaseStructT >::Make ( )
inlinestatic

Creates a new TInstancedStruct from templated struct type.

◆ Make() [2/3]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
static TInstancedStruct TInstancedStruct< BaseStructT >::Make ( const T &  Struct)
inlinestatic

Creates a new TInstancedStruct from templated struct.

◆ Make() [3/3]

template<typename BaseStructT >
template<typename T = BaseStructT, typename... TArgs, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
static TInstancedStruct TInstancedStruct< BaseStructT >::Make ( TArgs &&...  InArgs)
inlinestatic

Creates a new TInstancedStruct from the templated type and forward all arguments to constructor.

◆ NetSerialize()

template<typename BaseStructT >
bool TInstancedStruct< BaseStructT >::NetSerialize ( FArchive Ar,
UPackageMap Map,
bool bOutSuccess 
)
inline

◆ operator!=()

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
bool TInstancedStruct< BaseStructT >::operator!= ( const TInstancedStruct< T > &  Other) const
inline

◆ operator=() [1/3]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStruct & TInstancedStruct< BaseStructT >::operator= ( const TConstStructView< T >  InOther)
inline

◆ operator=() [2/3]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStruct & TInstancedStruct< BaseStructT >::operator= ( const TInstancedStruct< T > &  InOther)
inline

◆ operator=() [3/3]

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
TInstancedStruct & TInstancedStruct< BaseStructT >::operator= ( TInstancedStruct< T > &&  InOther)
inline

◆ operator==()

template<typename BaseStructT >
template<typename T = BaseStructT, typename = std::enable_if_t<std::is_base_of_v<BaseStructT, std::decay_t<T>>>>
bool TInstancedStruct< BaseStructT >::operator== ( const TInstancedStruct< T > &  Other) const
inline

Comparison operators. Deep compares the struct instance when identical.

◆ Reset()

template<typename BaseStructT >
void TInstancedStruct< BaseStructT >::Reset ( )
inline

Reset to empty.

◆ Serialize()

template<typename BaseStructT >
bool TInstancedStruct< BaseStructT >::Serialize ( FArchive Ar)
inline

Friends And Related Symbol Documentation

◆ TInstancedStruct

template<typename BaseStructT >
template<typename U >
friend struct TInstancedStruct
friend

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