UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TStrongObjectPtr< ObjectType, ReferencerNameProvider > Class Template Reference

#include <StrongObjectPtrTemplates.h>

Public Types

using ElementType = ObjectType
 

Public Member Functions

 TStrongObjectPtr (TStrongObjectPtr &&InOther)
 
TStrongObjectPtroperator= (TStrongObjectPtr &&InOther)
 
UE_FORCEINLINE_HINT ~TStrongObjectPtr ()
 
UE_FORCEINLINE_HINT TStrongObjectPtr (TYPE_OF_NULLPTR=nullptr)
 
 TStrongObjectPtr (ObjectType *InObject)
 
UE_FORCEINLINE_HINT TStrongObjectPtr (const TStrongObjectPtr &InOther)
 
template<typename OtherObjectType , typename OtherReferencerNameProvider >
UE_FORCEINLINE_HINT TStrongObjectPtr (const TStrongObjectPtr< OtherObjectType, OtherReferencerNameProvider > &InOther)
 
TStrongObjectPtroperator= (const TStrongObjectPtr &InOther)
 
template<typename OtherObjectType , typename OtherReferencerNameProvider >
TStrongObjectPtroperator= (const TStrongObjectPtr< OtherObjectType, OtherReferencerNameProvider > &InOther)
 
ObjectType & operator* () const
 
ObjectType * operator-> () const
 
UE_FORCEINLINE_HINT bool IsValid () const
 
UE_FORCEINLINE_HINT operator bool () const
 
UE_FORCEINLINE_HINT ObjectType * Get () const
 
void Reset ()
 
void Reset (ObjectType *InNewObject)
 

Friends

template<class T , class TWeakObjectPtrBase >
struct TWeakObjectPtr
 
UE_FORCEINLINE_HINT friend uint32 GetTypeHash (const TStrongObjectPtr &InStrongObjectPtr)
 
UE_FORCEINLINE_HINT bool operator== (const TStrongObjectPtr &InLHS, const TStrongObjectPtr &InRHS)
 
UE_FORCEINLINE_HINT bool operator== (const TStrongObjectPtr &InLHS, TYPE_OF_NULLPTR)
 
UE_FORCEINLINE_HINT bool operator== (TYPE_OF_NULLPTR, const TStrongObjectPtr &InRHS)
 
template<typename RHSObjectType , typename RHSReferencerNameProvider UE_REQUIRES>
UE_FORCEINLINE_HINT bool operator== (const TStrongObjectPtr &InLHS, const TStrongObjectPtr< RHSObjectType, RHSReferencerNameProvider > &InRHS)
 
template<typename LHSObjectType , typename LHSReferencerNameProvider UE_REQUIRES>
UE_FORCEINLINE_HINT bool operator== (const TStrongObjectPtr< LHSObjectType, LHSReferencerNameProvider > &InLHS, const TStrongObjectPtr &InRHS)
 
UE_FORCEINLINE_HINT bool operator!= (const TStrongObjectPtr &InLHS, const TStrongObjectPtr &InRHS)
 
UE_FORCEINLINE_HINT bool operator!= (const TStrongObjectPtr &InLHS, TYPE_OF_NULLPTR)
 
UE_FORCEINLINE_HINT bool operator!= (TYPE_OF_NULLPTR, const TStrongObjectPtr &InRHS)
 
template<typename RHSObjectType , typename RHSReferencerNameProvider UE_REQUIRES>
UE_FORCEINLINE_HINT bool operator!= (const TStrongObjectPtr &InLHS, const TStrongObjectPtr< RHSObjectType, RHSReferencerNameProvider > &InRHS)
 
template<typename LHSObjectType , typename LHSReferencerNameProvider UE_REQUIRES>
UE_FORCEINLINE_HINT bool operator!= (const TStrongObjectPtr< LHSObjectType, LHSReferencerNameProvider > &InLHS, const TStrongObjectPtr &InRHS)
 

Detailed Description

template<typename ObjectType, typename ReferencerNameProvider>
class TStrongObjectPtr< ObjectType, ReferencerNameProvider >

Take a ref-count on a UObject to prevent it from being GC'd while this guard is in scope.

TStrongObjectPtr is a strong pointer to a UObject. It can return nullptr if it has not been initialized or has been constructed from a weak ptr that is already garbage collected. It prevents an object from being garbage collected. It can't be directly used across a network.

Most often it is used when you explicitly want to prevent something from being garbage collected.

Member Typedef Documentation

◆ ElementType

template<typename ObjectType , typename ReferencerNameProvider >
using TStrongObjectPtr< ObjectType, ReferencerNameProvider >::ElementType = ObjectType

Constructor & Destructor Documentation

◆ TStrongObjectPtr() [1/5]

◆ ~TStrongObjectPtr()

◆ TStrongObjectPtr() [2/5]

◆ TStrongObjectPtr() [3/5]

template<typename ObjectType , typename ReferencerNameProvider >
TStrongObjectPtr< ObjectType, ReferencerNameProvider >::TStrongObjectPtr ( ObjectType *  InObject)
inlineexplicit

◆ TStrongObjectPtr() [4/5]

◆ TStrongObjectPtr() [5/5]

Member Function Documentation

◆ Get()

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT ObjectType * TStrongObjectPtr< ObjectType, ReferencerNameProvider >::Get ( ) const
inline

◆ IsValid()

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool TStrongObjectPtr< ObjectType, ReferencerNameProvider >::IsValid ( ) const
inline

◆ operator bool()

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT TStrongObjectPtr< ObjectType, ReferencerNameProvider >::operator bool ( ) const
inlineexplicit

◆ operator*()

template<typename ObjectType , typename ReferencerNameProvider >
ObjectType & TStrongObjectPtr< ObjectType, ReferencerNameProvider >::operator* ( ) const
inline

◆ operator->()

template<typename ObjectType , typename ReferencerNameProvider >
ObjectType * TStrongObjectPtr< ObjectType, ReferencerNameProvider >::operator-> ( ) const
inline

◆ operator=() [1/3]

template<typename ObjectType , typename ReferencerNameProvider >
TStrongObjectPtr & TStrongObjectPtr< ObjectType, ReferencerNameProvider >::operator= ( const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InOther)
inline

◆ operator=() [2/3]

◆ operator=() [3/3]

template<typename ObjectType , typename ReferencerNameProvider >
TStrongObjectPtr & TStrongObjectPtr< ObjectType, ReferencerNameProvider >::operator= ( TStrongObjectPtr< ObjectType, ReferencerNameProvider > &&  InOther)
inline

◆ Reset() [1/2]

template<typename ObjectType , typename ReferencerNameProvider >
void TStrongObjectPtr< ObjectType, ReferencerNameProvider >::Reset ( )
inline

◆ Reset() [2/2]

template<typename ObjectType , typename ReferencerNameProvider >
void TStrongObjectPtr< ObjectType, ReferencerNameProvider >::Reset ( ObjectType *  InNewObject)
inline

Friends And Related Symbol Documentation

◆ GetTypeHash

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT friend uint32 GetTypeHash ( const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InStrongObjectPtr)
friend

◆ operator!= [1/5]

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool operator!= ( const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InLHS,
const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InRHS 
)
friend

◆ operator!= [2/5]

◆ operator!= [3/5]

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool operator!= ( const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InLHS,
TYPE_OF_NULLPTR   
)
friend

◆ operator!= [4/5]

◆ operator!= [5/5]

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool operator!= ( TYPE_OF_NULLPTR  ,
const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InRHS 
)
friend

◆ operator== [1/5]

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool operator== ( const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InLHS,
const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InRHS 
)
friend

◆ operator== [2/5]

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool operator== ( const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InLHS,
const TStrongObjectPtr< RHSObjectType, RHSReferencerNameProvider > &  InRHS 
)
friend

◆ operator== [3/5]

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool operator== ( const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InLHS,
TYPE_OF_NULLPTR   
)
friend

◆ operator== [4/5]

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool operator== ( const TStrongObjectPtr< LHSObjectType, LHSReferencerNameProvider > &  InLHS,
const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InRHS 
)
friend

◆ operator== [5/5]

template<typename ObjectType , typename ReferencerNameProvider >
UE_FORCEINLINE_HINT bool operator== ( TYPE_OF_NULLPTR  ,
const TStrongObjectPtr< ObjectType, ReferencerNameProvider > &  InRHS 
)
friend

◆ TWeakObjectPtr

template<typename ObjectType , typename ReferencerNameProvider >
template<class T , class TWeakObjectPtrBase >
friend struct TWeakObjectPtr
friend

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