UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TIndexedPtrBase< T, PtrType > Class Template Reference

#include <MemoryImage.h>

Public Types

using FPtrTable = TPtrTableBase< T, PtrType >
 

Public Member Functions

 TIndexedPtrBase (T *InPtr=nullptr)
 
 ~TIndexedPtrBase ()
 
 TIndexedPtrBase (const TIndexedPtrBase< T, PtrType > &Rhs)
 
 TIndexedPtrBase (const TIndexedPtrBase< T, PtrType > &Rhs, const FPtrTable &InTable)
 
TIndexedPtrBaseoperator= (T *Rhs)
 
TIndexedPtrBaseoperator= (const PtrType &Rhs)
 
TIndexedPtrBaseoperator= (PtrType &&Rhs)
 
bool IsFrozen () const
 
bool IsValid () const
 
bool IsNull () const
 
void SafeRelease ()
 
T * Get (const FPtrTable &PtrTable) const
 
T * Get (const FPointerTableBase *PtrTable) const
 
T * GetUnfrozen () const
 

Detailed Description

template<typename T, typename PtrType>
class TIndexedPtrBase< T, PtrType >

Note that IndexedPtr types don't declare a default intrinsic type layout. Instead any required pointer types need to be declared/implemented using DECLARE_EXPORTED_TEMPLATE_INTRINSIC_TYPE_LAYOUT/IMPLEMENT_TEMPLATE_INTRINSIC_TYPE_LAYOUT. The TypeDesc of indexed pointers are compared for equality when adding to pointer tables, and it's possible for inline type layouts to generate multiple copies when referenced from multiple modules

Member Typedef Documentation

◆ FPtrTable

template<typename T , typename PtrType >
using TIndexedPtrBase< T, PtrType >::FPtrTable = TPtrTableBase<T, PtrType>

Constructor & Destructor Documentation

◆ TIndexedPtrBase() [1/3]

template<typename T , typename PtrType >
TIndexedPtrBase< T, PtrType >::TIndexedPtrBase ( T *  InPtr = nullptr)
inline

◆ ~TIndexedPtrBase()

template<typename T , typename PtrType >
TIndexedPtrBase< T, PtrType >::~TIndexedPtrBase ( )
inline

◆ TIndexedPtrBase() [2/3]

template<typename T , typename PtrType >
TIndexedPtrBase< T, PtrType >::TIndexedPtrBase ( const TIndexedPtrBase< T, PtrType > &  Rhs)
inline

◆ TIndexedPtrBase() [3/3]

template<typename T , typename PtrType >
TIndexedPtrBase< T, PtrType >::TIndexedPtrBase ( const TIndexedPtrBase< T, PtrType > &  Rhs,
const FPtrTable InTable 
)
inline

Member Function Documentation

◆ Get() [1/2]

template<typename T , typename PtrType >
T * TIndexedPtrBase< T, PtrType >::Get ( const FPointerTableBase PtrTable) const
inline

◆ Get() [2/2]

template<typename T , typename PtrType >
T * TIndexedPtrBase< T, PtrType >::Get ( const FPtrTable PtrTable) const
inline

◆ GetUnfrozen()

template<typename T , typename PtrType >
T * TIndexedPtrBase< T, PtrType >::GetUnfrozen ( ) const
inline

◆ IsFrozen()

template<typename T , typename PtrType >
bool TIndexedPtrBase< T, PtrType >::IsFrozen ( ) const
inline

◆ IsNull()

template<typename T , typename PtrType >
bool TIndexedPtrBase< T, PtrType >::IsNull ( ) const
inline

◆ IsValid()

template<typename T , typename PtrType >
bool TIndexedPtrBase< T, PtrType >::IsValid ( ) const
inline

◆ operator=() [1/3]

template<typename T , typename PtrType >
TIndexedPtrBase & TIndexedPtrBase< T, PtrType >::operator= ( const PtrType &  Rhs)
inline

◆ operator=() [2/3]

template<typename T , typename PtrType >
TIndexedPtrBase & TIndexedPtrBase< T, PtrType >::operator= ( PtrType &&  Rhs)
inline

◆ operator=() [3/3]

template<typename T , typename PtrType >
TIndexedPtrBase & TIndexedPtrBase< T, PtrType >::operator= ( T *  Rhs)
inline

◆ SafeRelease()

template<typename T , typename PtrType >
void TIndexedPtrBase< T, PtrType >::SafeRelease ( )
inline

Member Data Documentation

◆ PackedIndex

template<typename T , typename PtrType >
uint64 TIndexedPtrBase< T, PtrType >::PackedIndex

◆ Ptr

template<typename T , typename PtrType >
PtrType TIndexedPtrBase< T, PtrType >::Ptr

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