17template<
class TObjectID>
60 ObjectID = TObjectID::GetOrCreateIDForObject(
Object);
61 if (CanCacheObjectPointer(
Object))
126 if (!
Object && ObjectID.IsValid())
128 Object = ObjectID.ResolveObject();
135 return ::GetValid(
Object);
152 if (!
Object && ObjectID.IsValid())
154 Object = ObjectID.ResolveObject();
182 return ObjectID == Rhs.ObjectID;
193 return ObjectID != Rhs.ObjectID;
201#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
204 return !Rhs.IsValid();
209 return Rhs.IsValid();
220 return Get() ==
nullptr && ObjectID.IsValid();
249 return !ObjectID.IsValid();
262 inline bool CanCacheObjectPointer(
FObjectPtr Ptr)
const
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define EInternalObjectFlags_AsyncLoading
Definition ObjectMacros.h:681
bool(* IsInAsyncLoadingThread)()
Definition ThreadingBase.cpp:357
UE_FORCEINLINE_HINT bool HasAnyInternalFlags(EInternalObjectFlags FlagsToCheck) const
Definition UObjectBaseUtility.h:289
Definition ObjectPtr.h:55
Definition WeakObjectPtr.h:49
COREUOBJECT_API bool IsStale(bool bIncludingGarbage=true, bool bThreadsafeTest=false) const
Definition WeakObjectPtr.cpp:65
COREUOBJECT_API class UObject * Get(bool bEvenIfGarbage) const
Definition WeakObjectPtr.cpp:122
void Reset()
Definition WeakObjectPtr.h:129
Definition IsPODType.h:12
@ Value
Definition IsPODType.h:13
Definition UnrealTypeTraits.h:181
@ Value
Definition UnrealTypeTraits.h:182
Definition ObjectPtr.h:488
Definition PersistentObjectPtr.h:19
void operator=(const FWeakObjectPtr &Other)
Definition PersistentObjectPtr.h:92
UE_FORCEINLINE_HINT bool IsPending() const
Definition PersistentObjectPtr.h:218
TObjectID ElementType
Definition PersistentObjectPtr.h:20
UE_FORCEINLINE_HINT bool operator==(const TPersistentObjectPtr &Rhs) const
Definition PersistentObjectPtr.h:180
UE_FORCEINLINE_HINT friend bool operator==(TYPE_OF_NULLPTR, const TPersistentObjectPtr &Rhs)
Definition PersistentObjectPtr.h:202
UE_FORCEINLINE_HINT friend uint32 GetTypeHash(const TPersistentObjectPtr &Ptr)
Definition PersistentObjectPtr.h:253
UE_FORCEINLINE_HINT void operator=(TObjectPtr< T > Object)
Definition PersistentObjectPtr.h:80
UE_FORCEINLINE_HINT bool IsStale() const
Definition PersistentObjectPtr.h:238
UObject * Get() const
Definition PersistentObjectPtr.h:120
void operator=(FObjectPtr Object)
Definition PersistentObjectPtr.h:56
UE_FORCEINLINE_HINT friend bool operator!=(TYPE_OF_NULLPTR, const TPersistentObjectPtr &Rhs)
Definition PersistentObjectPtr.h:207
UE_FORCEINLINE_HINT UObject * operator->() const
Definition PersistentObjectPtr.h:174
TPersistentObjectPtr(const TObjectID &InObjectID)
Definition PersistentObjectPtr.h:42
UE_FORCEINLINE_HINT bool IsValid() const
Definition PersistentObjectPtr.h:228
UE_FORCEINLINE_HINT TObjectID & GetUniqueID()
Definition PersistentObjectPtr.h:110
UE_FORCEINLINE_HINT bool operator==(TYPE_OF_NULLPTR) const
Definition PersistentObjectPtr.h:185
UE_FORCEINLINE_HINT const TObjectID & GetUniqueID() const
Definition PersistentObjectPtr.h:104
UE_FORCEINLINE_HINT UObject & operator*() const
Definition PersistentObjectPtr.h:168
UE_FORCEINLINE_HINT TPersistentObjectPtr()
Definition PersistentObjectPtr.h:23
UObject * Get(bool bEvenIfPendingKill) const
Definition PersistentObjectPtr.h:146
UE_FORCEINLINE_HINT bool IsNull() const
Definition PersistentObjectPtr.h:247
UE_FORCEINLINE_HINT bool operator!=(TYPE_OF_NULLPTR) const
Definition PersistentObjectPtr.h:196
void operator=(const TObjectID &InObjectID)
Definition PersistentObjectPtr.h:49
void Reset()
Definition PersistentObjectPtr.h:29
UE_FORCEINLINE_HINT void operator=(const UObject *Object)
Definition PersistentObjectPtr.h:75
UE_FORCEINLINE_HINT void ResetWeakPtr()
Definition PersistentObjectPtr.h:36
UE_FORCEINLINE_HINT bool operator!=(const TPersistentObjectPtr &Rhs) const
Definition PersistentObjectPtr.h:191