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

#include <LazyObjectPtr.h>

+ Inheritance diagram for TLazyObjectPtr< T >:

Public Types

using ElementType = T
 

Public Member Functions

 TLazyObjectPtr ()=default
 
 TLazyObjectPtr (TLazyObjectPtr< T > &&)=default
 
 TLazyObjectPtr (const TLazyObjectPtr< T > &)=default
 
TLazyObjectPtr< T > & operator= (TLazyObjectPtr< T > &&)=default
 
TLazyObjectPtr< T > & operator= (const TLazyObjectPtr< T > &)=default
 
template<typename U >
UE_FORCEINLINE_HINT TLazyObjectPtr (const TLazyObjectPtr< U > &Other)
 
template<typename U >
UE_FORCEINLINE_HINT TLazyObjectPtr< T > & operator= (const TLazyObjectPtr< U > &Other)
 
UE_FORCEINLINE_HINT TLazyObjectPtr (T *Object)
 
UE_FORCEINLINE_HINT void Reset ()
 
UE_FORCEINLINE_HINT void operator= (T *Object)
 
UE_FORCEINLINE_HINT void operator= (const FUniqueObjectGuid &InObjectID)
 
UE_FORCEINLINE_HINT const FUniqueObjectGuidGetUniqueID () const
 
UE_FORCEINLINE_HINT T * Get () const
 
UE_FORCEINLINE_HINT T & operator* () const
 
UE_FORCEINLINE_HINT T * operator-> () const
 
UE_FORCEINLINE_HINT bool IsValid () const
 
UE_FORCEINLINE_HINT bool IsStale () const
 
UE_FORCEINLINE_HINT bool IsPending () const
 
UE_FORCEINLINE_HINT bool IsNull () const
 
UE_FORCEINLINE_HINT operator bool () const
 
UE_FORCEINLINE_HINT uint32 GetLazyObjecPtrTypeHash () const
 
UE_FORCEINLINE_HINT void SerializePtr (FArchive &Ar)
 
template<typename U , typename = decltype((T*)nullptr == (U*)nullptr)>
UE_FORCEINLINE_HINT bool operator== (const TLazyObjectPtr< U > &Rhs) const
 
template<typename U , typename = decltype((T*)nullptr != (U*)nullptr)>
UE_FORCEINLINE_HINT bool operator!= (const TLazyObjectPtr< U > &Rhs) const
 
template<typename U , typename = decltype((T*)nullptr == (U*)nullptr)>
UE_FORCEINLINE_HINT bool operator== (const U *Rhs) const
 
UE_FORCEINLINE_HINT bool operator== (TYPE_OF_NULLPTR) const
 
template<typename U , typename = decltype((T*)nullptr != (U*)nullptr)>
UE_FORCEINLINE_HINT bool operator!= (const U *Rhs) const
 
UE_FORCEINLINE_HINT bool operator!= (TYPE_OF_NULLPTR) const
 

Detailed Description

template<class T = UObject>
struct TLazyObjectPtr< T >

TLazyObjectPtr is the templatized version of the generic FLazyObjectPtr. NOTE: This will be deprecated in a future engine version and new features should use TSoftObjectPtr instead.

Member Typedef Documentation

◆ ElementType

template<class T = UObject>
using TLazyObjectPtr< T >::ElementType = T

Constructor & Destructor Documentation

◆ TLazyObjectPtr() [1/5]

template<class T = UObject>
TLazyObjectPtr< T >::TLazyObjectPtr ( )
default

◆ TLazyObjectPtr() [2/5]

template<class T = UObject>
TLazyObjectPtr< T >::TLazyObjectPtr ( TLazyObjectPtr< T > &&  )
default

◆ TLazyObjectPtr() [3/5]

template<class T = UObject>
TLazyObjectPtr< T >::TLazyObjectPtr ( const TLazyObjectPtr< T > &  )
default

◆ TLazyObjectPtr() [4/5]

template<class T = UObject>
template<typename U >
UE_FORCEINLINE_HINT TLazyObjectPtr< T >::TLazyObjectPtr ( const TLazyObjectPtr< U > &  Other)
inline

Construct from another lazy pointer with implicit upcasting allowed

◆ TLazyObjectPtr() [5/5]

template<class T = UObject>
UE_FORCEINLINE_HINT TLazyObjectPtr< T >::TLazyObjectPtr ( T *  Object)
inline

Construct from an object pointer

Member Function Documentation

◆ Get()

template<class T = UObject>
UE_FORCEINLINE_HINT T * TLazyObjectPtr< T >::Get ( ) const
inline

Dereference the lazy pointer.

Returns
nullptr if this object is gone or the lazy pointer was null, otherwise a valid UObject pointer

◆ GetLazyObjecPtrTypeHash()

template<class T = UObject>
UE_FORCEINLINE_HINT uint32 TLazyObjectPtr< T >::GetLazyObjecPtrTypeHash ( ) const
inline

Hash function.

◆ GetUniqueID()

template<class T = UObject>
UE_FORCEINLINE_HINT const FUniqueObjectGuid & TLazyObjectPtr< T >::GetUniqueID ( ) const
inline

Gets the unique object identifier associated with this lazy pointer. Valid even if pointer is not currently valid

Returns
Unique ID for this object, or an invalid FUniqueObjectID if this pointer isn't set to anything

◆ IsNull()

template<class T = UObject>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::IsNull ( ) const
inline

Test if this can never point to a live UObject

Returns
true if this is explicitly pointing to no object

◆ IsPending()

template<class T = UObject>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::IsPending ( ) const
inline

Test if this does not point to a live UObject, but may in the future

Returns
true if this does not point to a real object, but could possibly

◆ IsStale()

template<class T = UObject>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::IsStale ( ) const
inline

Slightly different than !IsValid(), returns true if this used to point to a UObject, but doesn't any more and has not been assigned or reset in the mean time.

Returns
true if this used to point at a real object but no longer does.

◆ IsValid()

template<class T = UObject>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::IsValid ( ) const
inline

Test if this points to a live UObject

◆ operator bool()

template<class T = UObject>
UE_FORCEINLINE_HINT TLazyObjectPtr< T >::operator bool ( ) const
inlineexplicit

Dereference lazy pointer to see if it points somewhere valid

◆ operator!=() [1/3]

template<class T = UObject>
template<typename U , typename = decltype((T*)nullptr != (U*)nullptr)>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::operator!= ( const TLazyObjectPtr< U > &  Rhs) const
inline

◆ operator!=() [2/3]

template<class T = UObject>
template<typename U , typename = decltype((T*)nullptr != (U*)nullptr)>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::operator!= ( const U *  Rhs) const
inline

Compare for inequality with a raw pointer

◆ operator!=() [3/3]

template<class T = UObject>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::operator!= ( TYPE_OF_NULLPTR  ) const
inline

Compare for inequality with null

◆ operator*()

template<class T = UObject>
UE_FORCEINLINE_HINT T & TLazyObjectPtr< T >::operator* ( ) const
inline

Dereference the lazy pointer

◆ operator->()

template<class T = UObject>
UE_FORCEINLINE_HINT T * TLazyObjectPtr< T >::operator-> ( ) const
inline

Dereference the lazy pointer

◆ operator=() [1/5]

template<class T = UObject>
UE_FORCEINLINE_HINT void TLazyObjectPtr< T >::operator= ( const FUniqueObjectGuid InObjectID)
inline

Copy from a unique object identifier WARNING: this doesn't check the type of the object is correct, because the object corresponding to this ID may not even be loaded!

Parameters
ObjectIDObject identifier to create a lazy pointer to

◆ operator=() [2/5]

template<class T = UObject>
TLazyObjectPtr< T > & TLazyObjectPtr< T >::operator= ( const TLazyObjectPtr< T > &  )
default

◆ operator=() [3/5]

template<class T = UObject>
template<typename U >
UE_FORCEINLINE_HINT TLazyObjectPtr< T > & TLazyObjectPtr< T >::operator= ( const TLazyObjectPtr< U > &  Other)
inline

Assign from another lazy pointer with implicit upcasting allowed

◆ operator=() [4/5]

template<class T = UObject>
UE_FORCEINLINE_HINT void TLazyObjectPtr< T >::operator= ( T *  Object)
inline

Copy from an object pointer

◆ operator=() [5/5]

template<class T = UObject>
TLazyObjectPtr< T > & TLazyObjectPtr< T >::operator= ( TLazyObjectPtr< T > &&  )
default

◆ operator==() [1/3]

template<class T = UObject>
template<typename U , typename = decltype((T*)nullptr == (U*)nullptr)>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::operator== ( const TLazyObjectPtr< U > &  Rhs) const
inline

Compare with another TLazyObjectPtr of related type

◆ operator==() [2/3]

template<class T = UObject>
template<typename U , typename = decltype((T*)nullptr == (U*)nullptr)>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::operator== ( const U *  Rhs) const
inline

Compare for equality with a raw pointer

◆ operator==() [3/3]

template<class T = UObject>
UE_FORCEINLINE_HINT bool TLazyObjectPtr< T >::operator== ( TYPE_OF_NULLPTR  ) const
inline

Compare to null

◆ Reset()

template<class T = UObject>
UE_FORCEINLINE_HINT void TLazyObjectPtr< T >::Reset ( )
inline

Reset the lazy pointer back to the null state

◆ SerializePtr()

template<class T = UObject>
UE_FORCEINLINE_HINT void TLazyObjectPtr< T >::SerializePtr ( FArchive Ar)
inline

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