UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > Class Template Reference

#include <SharedPointer.h>

Public Member Functions

ULANG_FORCEINLINE TSPtrG (NullPtrType NullPtr=nullptr)
 
ULANG_FORCEINLINE TSPtrG (const TSPtrG &Other)
 
template<class OtherObjectType , bool OtherAllowNull, typename = typename TEnableIf<TPointerIsConvertibleFromTo<OtherObjectType, ObjectType>::Value && (AllowNull || !OtherAllowNull)>::Type>
ULANG_FORCEINLINE TSPtrG (const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &Other)
 
ULANG_FORCEINLINE TSPtrG (TSPtrG &&Other)
 
template<class OtherObjectType , bool OtherAllowNull, typename = typename TEnableIf<TPointerIsConvertibleFromTo<OtherObjectType, ObjectType>::Value && (AllowNull || !OtherAllowNull)>::Type>
ULANG_FORCEINLINE TSPtrG (TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &&Other)
 
ULANG_FORCEINLINE ~TSPtrG ()
 
template<typename... CtorArgsType>
ULANG_FORCEINLINE TSPtrGSetNew (CtorArgsType &&... CtorArgs)
 
ULANG_FORCEINLINE TSPtrGoperator= (NullPtrType)
 
ULANG_FORCEINLINE TSPtrGoperator= (const TSPtrG &Other)
 
template<class OtherObjectType , bool OtherAllowNull, typename = typename TEnableIf<TPointerIsConvertibleFromTo<OtherObjectType, ObjectType>::Value && (AllowNull || !OtherAllowNull)>::Type>
ULANG_FORCEINLINE TSPtrGoperator= (const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &Other)
 
ULANG_FORCEINLINE TSPtrGoperator= (TSPtrG &&Other)
 
template<class OtherObjectType , bool OtherAllowNull, typename = typename TEnableIf<TPointerIsConvertibleFromTo<OtherObjectType, ObjectType>::Value>::Type>
ULANG_FORCEINLINE TSPtrGoperator= (TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &&Other)
 
ULANG_FORCEINLINE operator ObjectType * () const
 
ULANG_FORCEINLINE ObjectType & operator* () const
 
ULANG_FORCEINLINE ObjectType * operator-> () const
 
ULANG_FORCEINLINE ObjectType * Get () const
 
ULANG_FORCEINLINE const AllocatorType & GetAllocator () const
 
ULANG_FORCEINLINE void Reset ()
 
ULANG_FORCEINLINE TSPtrG< ObjectType, false, AllocatorType, AllocatorArgsType... > & AsRef () &
 
ULANG_FORCEINLINE TSPtrG< ObjectType, false, AllocatorType, AllocatorArgsType... > AsRef () &&
 
ULANG_FORCEINLINE const TSPtrG< ObjectType, false, AllocatorType, AllocatorArgsType... > & AsRef () const &
 
template<class OtherObjectType , typename = typename TEnableIf<TPointerIsStaticCastableFromTo<OtherObjectType, ObjectType>::Value>::Type>
ULANG_FORCEINLINE TSPtrG< OtherObjectType, AllowNull, AllocatorType, AllocatorArgsType... > & As ()
 
template<class OtherObjectType , typename = typename TEnableIf<TPointerIsStaticCastableFromTo<OtherObjectType, ObjectType>::Value>::Type>
ULANG_FORCEINLINE const TSPtrG< OtherObjectType, AllowNull, AllocatorType, AllocatorArgsType... > & As () const
 
ULANG_FORCEINLINE bool operator== (NullPtrType) const
 
ULANG_FORCEINLINE bool operator!= (NullPtrType) const
 
ULANG_FORCEINLINE bool operator== (const TSPtrG &Other) const
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool operator== (const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &Other) const
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool operator== (OtherObjectType *Object) const
 
ULANG_FORCEINLINE bool operator!= (const TSPtrG &Other) const
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool operator!= (const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &Other) const
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool operator!= (OtherObjectType *Object) const
 
ULANG_FORCEINLINE bool operator< (const TSPtrG &Other) const
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool operator< (const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &Other) const
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool operator< (OtherObjectType *Object) const
 
ULANG_FORCEINLINE bool operator> (const TSPtrG &Other) const
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool operator> (const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &Other) const
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool operator> (OtherObjectType *Object) const
 
ULANG_FORCEINLINE operator bool ()
 
ULANG_FORCEINLINE operator bool () const
 
ULANG_FORCEINLINE bool operator! () const
 
ULANG_FORCEINLINE bool IsValid () const
 
template<typename FuncType , typename... ArgTypes>
ULANG_FORCEINLINE TSPtrG Map (FuncType &&Func, ArgTypes &&... Args) &&
 

Static Public Member Functions

template<typename... CtorArgsType>
static ULANG_FORCEINLINE TSPtrG New (AllocatorArgsType &&... AllocatorArgs, CtorArgsType &&... CtorArgs)
 

Protected Types

using ReleaseFuncType = void(*)(ObjectType *, const AllocatorType &)
 

Protected Member Functions

ULANG_FORCEINLINE TSPtrG (ObjectType *Object, const AllocatorType &Allocator)
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE TSPtrGAssignCopy (const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &Other)
 
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE TSPtrGAssignMove (TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &&Other)
 
ULANG_FORCEINLINE void EnableRelease ()
 Set the release function pointer to a valid value.
 
ULANG_FORCEINLINE void Release ()
 Let go of our object.
 

Protected Attributes

ObjectType * _Object
 Pointer to original object.
 
AllocatorType _Allocator
 
ReleaseFuncType _ReleaseFunc
 

Friends

template<class OtherObjectType , bool OtherAllowNull, class OtherAllocatorType , typename... OtherAllocatorArgsType>
class TSPtrG
 
template<class OtherObjectType , bool OtherAllowNull, class OtherAllocatorType , typename... OtherAllocatorArgsType>
class TSPtrArrayG
 
template<class OtherObjectType , bool OtherAllowNull, class OtherKeyType , class OtherAllocatorType , typename... OtherAllocatorArgsType>
class TSPtrSetG
 
class CSharedMix
 
ULANG_FORCEINLINE friend void Swap (TSPtrG &A, TSPtrG &B)
 

Detailed Description

template<class ObjectType, bool AllowNull, class AllocatorType, typename... AllocatorArgsType>
class uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >

TSPtr is a convenience class - it wraps around a pointer to an object that is a subclass of CSharedMix [or any class that has the methods: Reference() & Dereference()] and acts just like a regular pointer except that it automatically references and dereferences the object as needed. The AllocatorType must provide the methods void * Allocate(size_t) and void Deallocate(void *)

Member Typedef Documentation

◆ ReleaseFuncType

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
using uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::ReleaseFuncType = void(*)(ObjectType *, const AllocatorType &)
protected

Indirection to keep knowledge about ObjectType out of default constructor and destructor so that TSPtrG can be forward declared with an incomplete ObjectType argument The price we pay is 8 more bytes of memory, indirect function call on each release, and that we have to (re-)initialize this function pointer in all methods that can set the pointer to something non-null

Constructor & Destructor Documentation

◆ TSPtrG() [1/6]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::TSPtrG ( NullPtrType  NullPtr = nullptr)
inline

◆ TSPtrG() [2/6]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::TSPtrG ( const TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &  Other)
inline

◆ TSPtrG() [3/6]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull, typename = typename TEnableIf<TPointerIsConvertibleFromTo<OtherObjectType, ObjectType>::Value && (AllowNull || !OtherAllowNull)>::Type>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::TSPtrG ( const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &  Other)
inline

◆ TSPtrG() [4/6]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::TSPtrG ( TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &&  Other)
inline

◆ TSPtrG() [5/6]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull, typename = typename TEnableIf<TPointerIsConvertibleFromTo<OtherObjectType, ObjectType>::Value && (AllowNull || !OtherAllowNull)>::Type>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::TSPtrG ( TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &&  Other)
inline

◆ ~TSPtrG()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::~TSPtrG ( )
inline

◆ TSPtrG() [6/6]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::TSPtrG ( ObjectType *  Object,
const AllocatorType &  Allocator 
)
inlineprotected

Member Function Documentation

◆ As() [1/2]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , typename = typename TEnableIf<TPointerIsStaticCastableFromTo<OtherObjectType, ObjectType>::Value>::Type>
ULANG_FORCEINLINE TSPtrG< OtherObjectType, AllowNull, AllocatorType, AllocatorArgsType... > & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::As ( )
inline

◆ As() [2/2]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , typename = typename TEnableIf<TPointerIsStaticCastableFromTo<OtherObjectType, ObjectType>::Value>::Type>
ULANG_FORCEINLINE const TSPtrG< OtherObjectType, AllowNull, AllocatorType, AllocatorArgsType... > & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::As ( ) const
inline

◆ AsRef() [1/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE TSPtrG< ObjectType, false, AllocatorType, AllocatorArgsType... > & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::AsRef ( ) &
inline

◆ AsRef() [2/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE TSPtrG< ObjectType, false, AllocatorType, AllocatorArgsType... > uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::AsRef ( ) &&
inline

◆ AsRef() [3/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE const TSPtrG< ObjectType, false, AllocatorType, AllocatorArgsType... > & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::AsRef ( ) const &
inline

◆ AssignCopy()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE TSPtrG & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::AssignCopy ( const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &  Other)
inlineprotected

◆ AssignMove()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE TSPtrG & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::AssignMove ( TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &&  Other)
inlineprotected

◆ EnableRelease()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE void uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::EnableRelease ( )
inlineprotected

Set the release function pointer to a valid value.

◆ Get()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE ObjectType * uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::Get ( ) const
inline

◆ GetAllocator()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE const AllocatorType & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::GetAllocator ( ) const
inline

◆ IsValid()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::IsValid ( ) const
inline

◆ Map()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<typename FuncType , typename... ArgTypes>
ULANG_FORCEINLINE TSPtrG uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::Map ( FuncType &&  Func,
ArgTypes &&...  Args 
) &&
inline

◆ New()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<typename... CtorArgsType>
static ULANG_FORCEINLINE TSPtrG uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::New ( AllocatorArgsType &&...  AllocatorArgs,
CtorArgsType &&...  CtorArgs 
)
inlinestatic

◆ operator bool() [1/2]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator bool ( )
inline

◆ operator bool() [2/2]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator bool ( ) const
inline

◆ operator ObjectType *()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator ObjectType * ( ) const
inline

◆ operator!()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator! ( ) const
inline

◆ operator!=() [1/4]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator!= ( const TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &  Other) const
inline

◆ operator!=() [2/4]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator!= ( const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &  Other) const
inline

◆ operator!=() [3/4]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator!= ( NullPtrType  ) const
inline

◆ operator!=() [4/4]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator!= ( OtherObjectType Object) const
inline

◆ operator*()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE ObjectType & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator* ( ) const
inline

◆ operator->()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE ObjectType * uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator-> ( ) const
inline

◆ operator<() [1/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator< ( const TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &  Other) const
inline

◆ operator<() [2/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator< ( const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &  Other) const
inline

◆ operator<() [3/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator< ( OtherObjectType Object) const
inline

◆ operator=() [1/5]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE TSPtrG & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator= ( const TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &  Other)
inline

◆ operator=() [2/5]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull, typename = typename TEnableIf<TPointerIsConvertibleFromTo<OtherObjectType, ObjectType>::Value && (AllowNull || !OtherAllowNull)>::Type>
ULANG_FORCEINLINE TSPtrG & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator= ( const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &  Other)
inline

◆ operator=() [3/5]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE TSPtrG & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator= ( NullPtrType  )
inline

◆ operator=() [4/5]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE TSPtrG & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator= ( TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &&  Other)
inline

◆ operator=() [5/5]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull, typename = typename TEnableIf<TPointerIsConvertibleFromTo<OtherObjectType, ObjectType>::Value>::Type>
ULANG_FORCEINLINE TSPtrG & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator= ( TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &&  Other)
inline

◆ operator==() [1/4]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator== ( const TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &  Other) const
inline

◆ operator==() [2/4]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator== ( const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &  Other) const
inline

◆ operator==() [3/4]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator== ( NullPtrType  ) const
inline

◆ operator==() [4/4]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator== ( OtherObjectType Object) const
inline

◆ operator>() [1/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator> ( const TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &  Other) const
inline

◆ operator>() [2/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator> ( const TSPtrG< OtherObjectType, OtherAllowNull, AllocatorType, AllocatorArgsType... > &  Other) const
inline

◆ operator>() [3/3]

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull>
ULANG_FORCEINLINE bool uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::operator> ( OtherObjectType Object) const
inline

◆ Release()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE void uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::Release ( )
inlineprotected

Let go of our object.

◆ Reset()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE void uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::Reset ( )
inline

◆ SetNew()

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<typename... CtorArgsType>
ULANG_FORCEINLINE TSPtrG & uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::SetNew ( CtorArgsType &&...  CtorArgs)
inline

Friends And Related Symbol Documentation

◆ CSharedMix

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
friend class CSharedMix
friend

◆ Swap

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ULANG_FORCEINLINE friend void Swap ( TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &  A,
TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType > &  B 
)
friend

◆ TSPtrArrayG

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull, class OtherAllocatorType , typename... OtherAllocatorArgsType>
friend class TSPtrArrayG
friend

◆ TSPtrG

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull, class OtherAllocatorType , typename... OtherAllocatorArgsType>
friend class TSPtrG
friend

◆ TSPtrSetG

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
template<class OtherObjectType , bool OtherAllowNull, class OtherKeyType , class OtherAllocatorType , typename... OtherAllocatorArgsType>
friend class TSPtrSetG
friend

Member Data Documentation

◆ _Allocator

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
AllocatorType uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::_Allocator
protected

How to deallocate the object This allocator can be 0 in size

◆ _Object

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ObjectType* uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::_Object
protected

Pointer to original object.

◆ _ReleaseFunc

template<class ObjectType , bool AllowNull, class AllocatorType , typename... AllocatorArgsType>
ReleaseFuncType uLang::TSPtrG< ObjectType, AllowNull, AllocatorType, AllocatorArgsType >::_ReleaseFunc
protected

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