16#define UE_WITH_OBJECT_PTR_DEPRECATIONS 0
17#if UE_WITH_OBJECT_PTR_DEPRECATIONS
18 #define UE_OBJPTR_DEPRECATED(Version, Message) UE_DEPRECATED(Version, Message)
20 #define UE_OBJPTR_DEPRECATED(Version, Message)
23#ifndef UE_OBJECT_PTR_GC_BARRIER
24 #define UE_OBJECT_PTR_GC_BARRIER 1
34#define UE_TRANSITIONAL_OBJECT_PTR(Type) auto
35#define UE_TRANSITIONAL_OBJECT_PTR_TEMPLATE(Templ, Type) auto
36#define UE_TRANSITIONAL_OBJECT_PTR_TEMPLATE_SUFFIXED(Templ, Type, Suffix) auto
37#define UE_TRANSITIONAL_OBJECT_PTR_TEMPLATE2_ARG1(Templ, Type1, Type2) auto
38#define UE_TRANSITIONAL_OBJECT_PTR_TEMPLATE2_ARG1_SUFFIXED(Templ, Type1, Type2, Suffix) auto
39#define UE_TRANSITIONAL_OBJECT_PTR_TEMPLATE2_ARG2(Templ, Type1, Type2) auto
40#define UE_TRANSITIONAL_OBJECT_PTR_TEMPLATE2_ARG2_SUFFIXED(Templ, Type1, Type2, Suffix) auto
41#define UE_TRANSITIONAL_OBJECT_PTR_TEMPLATE2_ARG_BOTH(Templ, Type1, Type2) auto
42#define UE_TRANSITIONAL_OBJECT_PTR_TEMPLATE2_ARG_BOTH_SUFFIXED(Templ, Type1, Type2, Suffix) auto
44#define UE_OBJECT_PTR_NONCONFORMANCE_SUPPORT 0 UE_DEPRECATED_MACRO(5.6, "UE_OBJECT_PTR_NONCONFORMANCE_SUPPORT has been deprecated and shouldn't be used")
74#if UE_OBJECT_PTR_GC_BARRIER
75 ConditionallyMarkAsReachable(
Object);
79 UE_OBJPTR_DEPRECATED(5.0,
"Construction with incomplete type pointer is deprecated. Please update this code to use MakeObjectPtrUnsafe.")
85#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_REMOTE_OBJECT_HANDLE
89#if UE_OBJECT_PTR_GC_BARRIER
90 ConditionallyMarkAsReachable(*
this);
96#if UE_WITH_REMOTE_OBJECT_HANDLE
97 :
FObjectPtr(UE::CoreUObject::Private::FRemoteObjectHandlePrivate::FromIdNoResolve(
ObjectId))
115#if UE_OBJECT_PTR_GC_BARRIER
119 ConditionallyMarkAsReachable(*
this);
125 ConditionallyMarkAsReachable(*
this);
130 ConditionallyMarkAsReachable(
InOther);
137 ConditionallyMarkAsReachable(
InOther);
150#if UE_OBJECT_PTR_GC_BARRIER
151 ConditionallyMarkAsReachable(
Other);
157 UE_OBJPTR_DEPRECATED(5.0,
"Assignment with incomplete type pointer is deprecated. Please update this code to use MakeObjectPtrUnsafe.")
198#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_REMOTE_OBJECT_HANDLE
276 template <
typename T>
279 return IsA(T::StaticClass());
284#if UE_WITH_REMOTE_OBJECT_HANDLE
305#if UE_OBJECT_PTR_GC_BARRIER
338 template <
typename T>
348 UE_REQUIRES(std::is_pointer_v<std::common_type_t<const T*, U>>)
366 template <
typename T,
typename U>
375#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_REMOTE_OBJECT_HANDLE
378 return Ptr.GetNoResolveNoCheck() ==
Other;
385#if UE_WITH_REMOTE_OBJECT_HANDLE
389 return Ptr.GetNoReadNoCheck() ==
Other;
397 decltype(
CoerceToPointer<T>(std::declval<U>()) == std::declval<const T*>())* =
nullptr
410#if UE_WITH_OBJECT_HANDLE_TYPE_SAFETY
416 return !ObjectPtr.operator
bool();
422#if UE_WITH_OBJECT_HANDLE_TYPE_SAFETY
428 return (T*)ObjectPtr.
Get();
431#if UE_WITH_OBJECT_HANDLE_TYPE_SAFETY
445 return !ObjectPtr.operator
bool();
461 return (T*)ObjectPtr.
Get();
465 template <
typename T,
int = sizeof(T)>
468 template <
typename T>
489#if !defined(PLATFORM_COMPILER_IWYU) && !defined(UE_HEADER_UNITS)
496 static_assert(std::disjunction<std::bool_constant<sizeof(ObjectPtr_Private::ResolveTypeIsComplete<T>(1)) != 2>, std::is_base_of<UObject, T>>::value,
"TObjectPtr<T> can only be used with types derived from UObject");
507#if UE_OBJECT_PTR_GC_BARRIER
560 UE_DEPRECATED(5.6,
"Constructing a TObjectPtr from a reference is deprecated - use a pointer instead.")
571#if UE_OBJECT_PTR_GC_BARRIER
623 typename Base = std::common_type_t<T*, U*>
627#if UE_WITH_OBJECT_HANDLE_TYPE_SAFETY
630 if (ObjectPtr_Private::IsObjectPtrNull<T>(
ObjectPtr))
632 return ObjectPtr_Private::IsObjectPtrNull<U>(
Other.ObjectPtr);
634 else if (ObjectPtr_Private::IsObjectPtrNull<U>(
Other.ObjectPtr))
645 return ObjectPtr_Private::IsObjectPtrNull<T>(
ObjectPtr);
683 template <
typename U>
693 template <
typename U>
694 UE_OBJPTR_DEPRECATED(5.0,
"Explicit cast to other raw pointer types is deprecated. Please use the Cast API or get the raw pointer with ToRawPtr and cast that instead.")
712 UE_OBJPTR_DEPRECATED(5.0,
"Conversion to a mutable pointer is deprecated. Please pass a TObjectPtr<T>& instead so that assignment can be tracked accurately.")
715 return GetInternalRef();
720 return ObjectPtr_Private::IsObjectPtrNull<T>(
ObjectPtr);
724 return !ObjectPtr_Private::IsObjectPtrNull<T>(
ObjectPtr);
762 template <
typename U>
788#if UE_WITH_REMOTE_OBJECT_HANDLE
810#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
847 template <
typename T>
853 template <
typename T>
860 template <
typename T>
866 template <
typename T>
872 template <
typename T>
879 template <
typename T>
1006template <
typename T>
1012#if !UE_DEPRECATE_MUTABLE_TOBJECTPTR
1013template <
typename T, SIZE_T Size>
1014UE_DEPRECATED(5.6,
"Mutable ToRawPtrArrayUnsafe() is deprecated. Use MutableView() or TArray<TObjectPtr<...>> instead.")
1018#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1023 check(Item.IsResolved());
1031template <
typename T, SIZE_T Size>
1035#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1040 return reinterpret_cast<const T*
const *
>(
ArrayOfPtr);
1043template <
typename T>
1055#if UE_DEPRECATE_MUTABLE_TOBJECTPTR
1058UE_DEPRECATED(5.6,
"Mutable ToRawPtrTArrayUnsafe() is deprecated. Use MutableView() or TArray<TObjectPtr<...>> instead.")
1070#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1072 TypeCompat::ReinterpretRange(
Array.begin(),
Array.end());
1081template <
typename T>
1088 UE_OBJPTR_DEPRECATED(5.0,
"Reinterpretation between ranges of one type to another type is deprecated.")
1091#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1094 (
void)Operator(Iter).Get();
1095 check(Operator(Iter).IsResolved());
1102 UE_OBJPTR_DEPRECATED(5.0,
"Reinterpretation between ranges of one type to another type is deprecated.")
1105#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1109 auto& Ptr = Operator(Iter);
1124template <
typename T>
1131 UE_OBJPTR_DEPRECATED(5.0,
"Reinterpretation between ranges of one type to another type is deprecated.")
1134#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1137 Operator(Iter).Get();
1138 check(Operator(Iter).IsResolved());
1145 UE_OBJPTR_DEPRECATED(5.0,
"Reinterpretation between ranges of one type to another type is deprecated.")
1148#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1152 auto& Ptr = Operator(Iter);
1168template <
typename T>
1175template <
typename T>
1181template <
typename T,
class PREDICATE_CLASS>
1196template <
typename T>
1203template <
typename T>
1206#if UE_WITH_REMOTE_OBJECT_HANDLE
1229template <
typename T>
1234template <
typename T>
1241#if !UE_DEPRECATE_MUTABLE_TOBJECTPTR
1242UE_DEPRECATED(5.6,
"Swap between TObjectPtr arrays and raw pointer arrays is deprecated. Swap TArray<TObjectPtr<...>> values instead.")
1248template <
typename T>
1256template <
typename T>
1261template <
typename T>
1267#if !UE_DEPRECATE_MUTABLE_TOBJECTPTR
1269UE_DEPRECATED(5.6,
"Exchange between TObjectPtr arrays and raw pointer arrays is deprecated. Exchange TArray<TObjectPtr<...>> values instead.")
1275template <
typename T>
1285template <
typename T>
1289 return IsValid(TestPtr) ? TestPtr :
nullptr;
1303template <
typename T,
typename DerivedType>
1309template <
typename T,
typename DerivedType>
1312 enum {
Value = std::is_base_of_v<DerivedType, T> };
1315template <
typename T,
typename DerivedType>
1318 enum {
Value = std::is_base_of_v<DerivedType, T> };
1321template <
typename T,
typename DerivedType>
1338template <
typename T>
1341template <
typename T>
1347template <
typename T>
1353template <
typename T>
1360 template <
typename T>
1367 template <
typename T>
1374#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1381 template <
typename T>
1388 for (
const auto& V :
Value)
1395 template <
typename K,
typename V>
1410 template <
typename T>
1417 for (
const auto& V :
Value)
1424 template <
typename T>
1431#if UE_WITH_OBJECT_HANDLE_LATE_RESOLVE || UE_WITH_OBJECT_HANDLE_TRACKING
1437 template <
typename T>
1443 template <
typename T>
1449 template <
typename T>
1455 template <
typename T>
1461 template <
typename T>
1467 template <
typename K,
typename V>
1475 template <
typename T,
1477 typename U =
typename DecayTraits::Type>
1480 DecayTraits::PerformDecayActions(
A);
1481 return reinterpret_cast<U&
>(
A);
1485 template <
typename T,
typename ViewType>
1488 static_assert(
sizeof(T) == 0,
"TMutableView not supported for this type. (Should it be?)");
1491 template <
typename T,
typename ViewType>
1496#if UE_OBJECT_PTR_GC_BARRIER
1505 template <
typename T,
typename ViewType>
1510#if UE_OBJECT_PTR_GC_BARRIER
1513 const UObject*
const* Data =
reinterpret_cast<const UObject* const*
>(View.GetData());
1526 template <
typename V,
typename ViewType>
1531#if UE_OBJECT_PTR_GC_BARRIER
1534 for (
const typename ViewType::ElementType& Element : View)
1546 template <
typename K,
typename V,
typename ViewType>
1551#if UE_OBJECT_PTR_GC_BARRIER
1557 for (
const typename ViewType::ElementType& Pair : View)
1579 template <
typename T>
1587 : View{&Unsafe::Decay(
Value)}
1593 TraitType::Close(*View);
1614 template <
typename T>
1617 static_assert(!std::is_convertible_v<T, const UObjectBase*>,
"TMaybeObjectPtr's type argument shouldn't be a subclass of UObjectBase");
1625 ConditionallyMarkAsReachable();
1640 return *
this =
Other.Ptr;
1645 return *
this =
Other;
1651 ConditionallyMarkAsReachable();
1665 Collector.AddReferencedObject(ObjectPtr, ReferencingObject);
1674 FORCEINLINE void ConditionallyMarkAsReachable()
const
1717template <
typename T>
1723template <
typename T>
1726 typename std::remove_reference_t<
decltype(
X)>::ViewType& Ref =
X;
1741template <
typename T,
1743 typename U =
typename DecayTraits::Type>
1746 DecayTraits::PerformDecayActions(
Value);
1747 return reinterpret_cast<const U&
>(
Value);
1753template <
typename T,
1757 return reinterpret_cast<U&
>(
Value);
1760template <
typename T>
1763template <
typename T,
1767 return reinterpret_cast<const U&
>(
Value);
1771template <
typename To,
typename From>
1774 return static_cast<To*
>(P.Get());
1777template <
typename T>
1784template<
typename ObjectType>
1800 static_assert(
sizeof(ObjectType) == 0,
"Tried to initialize TNonNullPtr with a null pointer!");
1817 UE_REQUIRES(std::is_convertible_v<OtherObjectType*, ObjectType*>)
1820 : Object(
Other.Object)
1830 static_assert(
sizeof(ObjectType) == 0,
"Tried to assign a null pointer to a TNonNullPtr!");
1839 ensureMsgf(InObject,
TEXT(
"Tried to assign a null pointer to a TNonNullPtr!"));
1849 UE_REQUIRES(std::is_convertible_v<OtherObjectType*, ObjectType*>)
1853 Object =
Other.Object;
1907 return Object !=
nullptr;
1913 explicit operator bool()
const =
delete;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define ensureAlwaysMsgf(InExpression, InFormat,...)
Definition AssertionMacros.h:467
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
typename TCopyQualifiersFromTo< From, To >::Type TCopyQualifiersFromTo_T
Definition CopyQualifiersFromTo.h:17
ENoInit
Definition CoreMiscDefines.h:158
@ NoInit
Definition CoreMiscDefines.h:158
#define UE_INTERNAL
Definition CoreMiscDefines.h:345
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
EConstEval
Definition CoreMiscDefines.h:161
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool TIsTObjectPtr_V
Definition IsTObjectPtr.h:8
const bool
Definition NetworkReplayStreaming.h:178
EDefaultConstructNonNullPtr
Definition NonNullPointer.h:16
EObjectFullNameFlags
Definition ObjectFwd.h:12
bool IsObjectHandleNull(FObjectHandle Handle)
Definition ObjectHandle.h:194
bool IsObjectHandleTypeSafe(FObjectHandle Handle)
Definition ObjectHandle.h:245
bool IsObjectHandleResolved(FObjectHandle Handle)
Definition ObjectHandle.h:209
FORCEINLINE FArchive & operator<<(FArchive &Ar, TObjectPtr< T > &InObjectPtr)
Definition ObjectPtr.h:954
FORCEINLINE T ** ToRawPtrArrayUnsafe(T **ArrayOfPtr)
Definition ObjectPtr.h:1044
PRAGMA_ENABLE_DEPRECATION_WARNINGS constexpr auto TContainerElementTypeCompatibility_DefaultOperatorFunc
Definition ObjectPtr.h:1079
T * GetValid(const TObjectPtr< T > &Test)
Definition ObjectPtr.h:1286
TObjectPtr< T > ToObjectPtr(T *Obj)
Definition ObjectPtr.h:994
#define UE_OBJECT_PTR_GC_BARRIER
Definition ObjectPtr.h:24
void Exchange(TObjectPtr< T > &A, T *&B)
Definition ObjectPtr.h:1257
FORCEINLINE To * StaticCastPtr(const TObjectPtr< From > &P)
Definition ObjectPtr.h:1772
FORCEINLINE uint32 GetTypeHash(const TObjectPtr< T > &InObjectPtr)
Definition ObjectPtr.h:948
FORCEINLINE const T *const * ToRawPtrArray(const TObjectPtr< T >(&ArrayOfPtr)[Size])
Definition ObjectPtr.h:1033
typename TPointedToTypeImpl< T >::Type TPointedToType
Definition ObjectPtr.h:1354
FORCEINLINE TWeakObjectPtr< T > MakeWeakObjectPtr(TObjectPtr< T > Ptr)
Definition ObjectPtr.h:1204
FORCEINLINE decltype(auto) ConstCast(const TObjectPtr< T > &P)
Definition ObjectPtr.h:1778
const U & ObjectPtrDecay(const T &Value)
Definition ObjectPtr.h:1744
decltype(auto) MutableView(T &A)
Definition ObjectPtr.h:1718
#define UE_OBJPTR_DEPRECATED(Version, Message)
Definition ObjectPtr.h:20
U & ObjectPtrWrap(T &Value)
Definition ObjectPtr.h:1755
typename UE::Core::Private::TObjectPtrWrapTypeOf< T >::Type TObjectPtrWrapTypeOf
Definition ObjectPtr.h:1761
FORCEINLINE T * ToRawPtr(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:1000
TPrivateObjectPtr< T > MakeObjectPtrUnsafe(const UObject *Obj)
Definition ObjectPtr.h:988
#define UE_REQUIRES(...)
Definition Requires.h:86
UE_REWRITE constexpr T ImplicitConv(typename TIdentity< T >::Type Obj)
Definition UnrealTemplate.h:743
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Size
Definition VulkanMemory.cpp:4034
Definition CoreUObject.Build.cs:7
Definition Archive.h:1208
Definition NameTypes.h:617
CORE_API FString ToString() const
Definition UnrealNames.cpp:3537
Definition UObjectGlobals.h:2492
Definition StructuredArchiveSlots.h:52
Definition ObjectPtr.h:881
constexpr TNonAccessTrackedObjectPtr(T *Ptr)
Definition ObjectPtr.h:890
UE_INTERNAL T * GetNoResolve() const
Definition ObjectPtr.h:912
consteval TNonAccessTrackedObjectPtr(EConstEval, UObject *Ptr)
Definition ObjectPtr.h:896
const TObjectPtr< T > & GetAccessTrackedObjectPtr() const
Definition ObjectPtr.h:927
constexpr TNonAccessTrackedObjectPtr()=default
T * Get() const
Definition ObjectPtr.h:907
TObjectPtr< T > & GetAccessTrackedObjectPtr()
Definition ObjectPtr.h:922
TNonAccessTrackedObjectPtr & operator=(T *Value)
Definition ObjectPtr.h:901
T * operator->() const
Definition ObjectPtr.h:937
TNonAccessTrackedObjectPtr(ENoInit)
Definition ObjectPtr.h:885
Definition ArrayView.h:139
Definition UnrealString.h.inl:34
FORCEINLINE TNonNullPtr(TYPE_OF_NULLPTR)
Definition ObjectPtr.h:1797
FORCEINLINE TNonNullPtr(const TNonNullPtr< OtherObjectType > &Other)
Definition ObjectPtr.h:1819
FORCEINLINE ObjectType & operator*() const
Definition ObjectPtr.h:1878
FORCEINLINE ObjectType * operator->() const
Definition ObjectPtr.h:1887
FORCEINLINE TNonNullPtr & operator=(const TNonNullPtr< OtherObjectType > &Other)
Definition ObjectPtr.h:1851
friend FORCEINLINE uint32 GetTypeHash(const TNonNullPtr &InPtr)
Definition ObjectPtr.h:1916
FORCEINLINE const TObjectPtr< ObjectType > & GetRef() const
Definition ObjectPtr.h:1893
FORCEINLINE TNonNullPtr & operator=(TYPE_OF_NULLPTR)
Definition ObjectPtr.h:1827
FORCEINLINE ObjectType * Get() const
Definition ObjectPtr.h:1869
FORCEINLINE TObjectPtr< ObjectType > & GetRef()
Definition ObjectPtr.h:1899
FORCEINLINE TNonNullPtr(EDefaultConstructNonNullPtr)
Definition ObjectPtr.h:1789
FORCEINLINE TNonNullPtr(TObjectPtr< ObjectType > InObject)
Definition ObjectPtr.h:1806
FORCEINLINE bool IsInitialized() const
Definition ObjectPtr.h:1905
FORCEINLINE TNonNullPtr & operator=(ObjectType *InObject)
Definition ObjectPtr.h:1837
Definition NonNullPointer.h:23
friend UE_FORCEINLINE_HINT uint32 GetTypeHash(const TNonNullPtr &InPtr)
Definition NonNullPointer.h:247
Definition ObjectPtr.h:1616
TMaybeObjectPtr()=default
void AddReferencedObject(FReferenceCollector &Collector, UObject *ReferencingObject)
Definition ObjectPtr.h:1660
TMaybeObjectPtr & operator=(const TMaybeObjectPtr &Other)
Definition ObjectPtr.h:1638
TMaybeObjectPtr & operator=(TMaybeObjectPtr &&Other)
Definition ObjectPtr.h:1643
TMaybeObjectPtr & operator=(T *P)
Definition ObjectPtr.h:1648
TMaybeObjectPtr(const TMaybeObjectPtr &Other)
Definition ObjectPtr.h:1628
TMaybeObjectPtr(TMaybeObjectPtr &&Other)
Definition ObjectPtr.h:1633
TMaybeObjectPtr(T *P)
Definition ObjectPtr.h:1622
Definition ObjectPtr.h:1581
TMutableView & operator=(TMutableView &&)=delete
TMutableView(TMutableView &&)=delete
~TMutableView()
Definition ObjectPtr.h:1591
TMutableView & operator=(const TMutableView &)=delete
typename TObjectPtrDecayTypeOf< T >::Type ViewType
Definition ObjectPtr.h:1583
TMutableView(const TMutableView &)=delete
TMutableView(T &Value)
Definition ObjectPtr.h:1586
Definition UObjectBase.h:59
Definition ObjectPtr.h:336
FORCEINLINE T * Get(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:426
bool IsObjectPtrEqual(const TObjectPtr< T > &Ptr, const U &Other)
Definition ObjectPtr.h:400
char(& ResolveTypeIsComplete(int))[2]
bool IsObjectPtrEqualToRawPtrOfRelatedType(const TObjectPtr< T > &Ptr, const U *Other)
Definition ObjectPtr.h:367
FORCEINLINE bool IsObjectPtrNull(const FObjectPtr &ObjectPtr)
Definition ObjectPtr.h:414
FORCEINLINE const T * CoerceToPointer(const T *Other)
Definition ObjectPtr.h:339
Definition OverriddenPropertySet.cpp:45
Definition TestUtils.cpp:8
UObject * ReadObjectHandlePointerNoCheck(FObjectHandle Handle)
Definition ObjectHandle.h:599
constexpr FObjectHandle MakeObjectHandle(UObject *Object)
these functions are always defined regardless of UE_WITH_OBJECT_HANDLE_LATE_RESOLVE value
Definition ObjectHandle.h:435
UObject * NoResolveObjectHandleNoRead(const FObjectHandle &Handle)
Definition ObjectHandle.h:550
UObject * ResolveObjectHandleNoReadNoCheck(FObjectHandle &Handle)
Definition ObjectHandle.h:564
UObject * ResolveObjectHandleNoRead(FObjectHandle &Handle)
Definition ObjectHandle.h:502
FString GetPathName(const UObject *Obj, const UObject *StopOuter)
Definition ObjectFwd.cpp:28
UObject * GetOuter(const UObject *Obj)
Definition ObjectFwd.cpp:18
FString GetFullName(const UObject *Obj, const UObject *StopOuter, EObjectFullNameFlags Flags)
Definition ObjectFwd.cpp:38
UObject * ResolveObjectHandle(FObjectHandle &Handle)
Definition ObjectHandle.h:441
FName GetFName(const UObject *Obj)
Definition ObjectFwd.cpp:13
UClass * ResolveObjectHandleClass(FObjectHandle Handle)
Definition ObjectHandle.h:462
bool IsIn(const UObject *Obj, const UObject *SomeOuter)
Definition ObjectFwd.cpp:23
void OnHandleRead(const UObject *Object)
Definition ObjectHandleTracking.h:131
UPackage * GetPackage(const UObject *Obj)
Definition ObjectFwd.cpp:33
U & Decay(T &A)
Definition ObjectPtr.h:1478
implementation
Definition PlayInEditorLoadingScope.h:8
bool GIsIncrementalReachabilityPending
Definition GarbageCollection.cpp:620
void MarkAsReachable(const UObject *Obj)
Definition GarbageCollection.cpp:603
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition ObjectPtr.h:55
FORCEINLINE UObject * Get() const
Definition ObjectPtr.h:104
FORCEINLINE FObjectHandle & GetHandleRef() const
Definition ObjectPtr.h:272
bool IsIn(FObjectPtr SomeOuter) const
Definition ObjectPtr.h:252
FString GetPath() const
Definition ObjectPtr.h:196
FObjectPtr GetPackage() const
Definition ObjectPtr.h:246
FObjectPtr GetOuter() const
Definition ObjectPtr.h:240
FORCEINLINE TObjectPtr< UObject > & ToTObjectPtr()
Definition ObjectPtr.h:1218
FORCEINLINE FObjectPtr(FRemoteObjectId ObjectId)
Definition ObjectPtr.h:95
constexpr FObjectPtr(const FObjectPtr &InOther)
Definition ObjectPtr.h:122
FORCEINLINE FRemoteObjectId GetRemoteId() const
Definition ObjectPtr.h:282
FORCEINLINE bool IsRemote() const
Definition ObjectPtr.h:192
COREUOBJECT_API bool IsA(const UClass *SomeBase) const
Definition ObjectPtr.cpp:252
FObjectPtr & operator=(const FObjectPtr &InOther)
Definition ObjectPtr.h:135
FObjectPtr & operator=(FObjectPtr &&InOther)
Definition ObjectPtr.h:128
UObject * DebugPtr
Definition ObjectPtr.h:302
FObjectPtr & operator=(UObject *Other)
Definition ObjectPtr.h:148
FObjectHandle Handle
Definition ObjectPtr.h:299
FORCEINLINE bool IsResolved() const
Definition ObjectPtr.h:186
FORCEINLINE UClass * GetClass() const
Definition ObjectPtr.h:109
FORCEINLINE constexpr FObjectPtr(UObject *Object)
Definition ObjectPtr.h:71
FORCEINLINE FObjectHandle GetHandle() const
Definition ObjectPtr.h:271
FORCEINLINE bool operator!() const
Definition ObjectPtr.h:183
FORCEINLINE bool IsA() const
Definition ObjectPtr.h:277
FORCEINLINE constexpr FObjectPtr(TYPE_OF_NULLPTR)
Definition ObjectPtr.h:66
FName GetFName() const
Definition ObjectPtr.h:229
constexpr FObjectPtr(FObjectPtr &&InOther)
Definition ObjectPtr.h:116
friend FORCEINLINE uint32 GetTypeHash(const FObjectPtr &Object)
Definition ObjectPtr.h:292
constexpr FObjectPtr(ENoInit)
Definition ObjectPtr.h:62
FORCEINLINE bool UEOpEquals(const FObjectPtr &Other) const
Definition ObjectPtr.h:170
constexpr FObjectPtr()
Definition ObjectPtr.h:57
FString GetName() const
Definition ObjectPtr.h:235
FORCEINLINE FObjectPtr(void *IncompleteObject)
Definition ObjectPtr.h:80
FString GetFullName(EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
Definition ObjectPtr.h:264
FString GetPathName() const
Definition ObjectPtr.h:223
FORCEINLINE UObject * operator->() const
Definition ObjectPtr.h:180
FORCEINLINE UObject & operator*() const
Definition ObjectPtr.h:181
FObjectPtr & operator=(TYPE_OF_NULLPTR)
Definition ObjectPtr.h:164
Definition RemoteObjectTypes.h:212
Definition ObjectPtr.h:846
static FORCEINLINE uint32 GetPtrTypeHash(const TObjectPtr< T > &InObjectPtr)
Definition ObjectPtr.h:848
static FORCEINLINE FArchive & Serialize(FArchive &Ar, TObjectPtr< T > &InObjectPtr)
Definition ObjectPtr.h:854
static FORCEINLINE T * NoAccessTrackingGetNoResolve(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:873
static FORCEINLINE void SerializePtrStructured(FStructuredArchiveSlot Slot, TObjectPtr< T > &InObjectPtr)
Definition ObjectPtr.h:861
static FORCEINLINE T * NoAccessTrackingGet(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:867
T * Type
Definition ObjectPtr.h:841
T * Type
Definition ObjectPtr.h:842
T * Type
Definition ObjectPtr.h:844
T * Type
Definition ObjectPtr.h:843
Definition ObjectPtr.h:840
T Type
Definition ObjectPtr.h:840
Definition UnrealTypeTraits.h:267
Definition UnrealTypeTraits.h:229
typename TCallTraitsParamTypeHelper< const TObjectPtr< const T >, true >::ConstParamType ConstPointerType
Definition ObjectPtr.h:1199
Definition UnrealTypeTraits.h:283
static void ReinterpretRange(IterBeginType Iter, IterEndType IterEnd, OperatorType Operator=TContainerElementTypeCompatibility_DefaultOperatorFunc)
Definition ObjectPtr.h:1089
static void ReinterpretRangeContiguous(IterBeginType Iter, IterEndType IterEnd, SizeType Size, OperatorType Operator=TContainerElementTypeCompatibility_DefaultOperatorFunc)
Definition ObjectPtr.h:1103
T * ReinterpretType
Definition ObjectPtr.h:1084
T * CopyFromOtherType
Definition ObjectPtr.h:1085
static void ReinterpretRange(IterBeginType Iter, IterEndType IterEnd, OperatorType Operator=TContainerElementTypeCompatibility_DefaultOperatorFunc)
Definition ObjectPtr.h:1132
static void ReinterpretRangeContiguous(IterBeginType Iter, IterEndType IterEnd, SizeType Size, OperatorType Operator=TContainerElementTypeCompatibility_DefaultOperatorFunc)
Definition ObjectPtr.h:1146
T *const CopyFromOtherType
Definition ObjectPtr.h:1128
T *const ReinterpretType
Definition ObjectPtr.h:1127
Definition ContainerElementTypeCompatibility.h:15
static constexpr void CopyingFromOtherType()
Definition ContainerElementTypeCompatibility.h:29
TCopyQualifiersFromTo_T< From, To > Type
Definition CopyQualifiersAndRefsFromTo.h:13
TDereferenceWrapper(const PREDICATE_CLASS &InPredicate)
Definition ObjectPtr.h:1186
const PREDICATE_CLASS & Predicate
Definition ObjectPtr.h:1184
FORCEINLINE bool operator()(const TObjectPtr< T > &A, const TObjectPtr< T > &B) const
Definition ObjectPtr.h:1190
const PREDICATE_CLASS & Predicate
Definition Sorting.h:17
Definition UnrealTypeTraits.h:410
Definition ObjectPtr.h:1305
@ Value
Definition ObjectPtr.h:1306
Definition ObjectPtr.h:1323
@ Value
Definition ObjectPtr.h:1324
Definition UnrealTypeTraits.h:172
Definition ObjectPtr.h:488
TObjectPtr(TObjectPtr< T > &&Other)
Definition ObjectPtr.h:508
FORCEINLINE bool IsResolved() const
Definition ObjectPtr.h:726
FORCEINLINE FString GetPathName() const
Definition ObjectPtr.h:738
FORCEINLINE bool UEOpEquals(const U &Other) const
Definition ObjectPtr.h:653
constexpr FORCEINLINE TObjectPtr(ENoInit)
Definition ObjectPtr.h:521
FORCEINLINE UClass * GetClass() const
Definition ObjectPtr.h:665
FORCEINLINE TObjectPtr< UPackage > GetPackage() const
Definition ObjectPtr.h:672
FORCEINLINE TObjectPtr< T > & operator=(U &&Object)
Definition ObjectPtr.h:608
FORCEINLINE TObjectPtr< T > & operator=(const TObjectPtr< U > &Other)
Definition ObjectPtr.h:597
FORCEINLINE TObjectPtr< T > & operator=(TPrivateObjectPtr< T > &&PrivatePtr)
Definition ObjectPtr.h:614
FORCEINLINE T * operator->() const
Definition ObjectPtr.h:703
FORCEINLINE bool UEOpEquals(const TObjectPtr< U > &Other) const
Definition ObjectPtr.h:625
TObjectPtr< T > & operator=(TObjectPtr< T > &&Other)
Definition ObjectPtr.h:572
FORCEINLINE FString GetName() const
Definition ObjectPtr.h:746
FORCEINLINE TObjectPtr(TPrivateObjectPtr< T > &&PrivatePtr)
Definition ObjectPtr.h:566
FORCEINLINE constexpr TObjectPtr(const TObjectPtr< U > &Other)
Definition ObjectPtr.h:545
FORCEINLINE consteval TObjectPtr(EConstEval, T *Object)
Definition ObjectPtr.h:536
TObjectPtr< T > & operator=(const TObjectPtr< T > &Other)
Definition ObjectPtr.h:577
FORCEINLINE FObjectHandle GetHandle() const
Definition ObjectPtr.h:754
T ElementType
Definition ObjectPtr.h:500
FORCEINLINE bool IsIn(TObjectPtr< U > SomeOuter) const
Definition ObjectPtr.h:684
FORCEINLINE T * Get() const
Definition ObjectPtr.h:664
FORCEINLINE bool IsA(const UClass *SomeBase) const
Definition ObjectPtr.h:758
FORCEINLINE constexpr TObjectPtr(FObjectPtr ObjPtr)
Definition ObjectPtr.h:531
TObjectPtr(const TObjectPtr< T > &Other)
Definition ObjectPtr.h:512
FORCEINLINE bool IsIn(FObjectPtr SomeOuter) const
Definition ObjectPtr.h:678
FORCEINLINE bool operator!() const
Definition ObjectPtr.h:718
FORCEINLINE uint32 GetPtrTypeHash() const
Definition ObjectPtr.h:768
FORCEINLINE bool IsA() const
Definition ObjectPtr.h:763
TObjectPtr< T > & GetAccessTrackedObjectPtr()
Definition ObjectPtr.h:778
FORCEINLINE TObjectPtr< T > & operator=(TYPE_OF_NULLPTR)
Definition ObjectPtr.h:587
T * DebugPtr
Definition ObjectPtr.h:821
FObjectPtr ObjectPtr
Definition ObjectPtr.h:818
FORCEINLINE FString GetFullName(EObjectFullNameFlags Flags=EObjectFullNameFlags::None) const
Definition ObjectPtr.h:750
FORCEINLINE FString GetPath() const
Definition ObjectPtr.h:734
FORCEINLINE TObjectPtr< UObject > GetOuter() const
Definition ObjectPtr.h:666
constexpr TObjectPtr()
Definition ObjectPtr.h:502
const TObjectPtr< T > & GetAccessTrackedObjectPtr() const
Definition ObjectPtr.h:783
FORCEINLINE FName GetFName() const
Definition ObjectPtr.h:742
FORCEINLINE void SerializePtrStructured(FStructuredArchiveSlot Slot)
Definition ObjectPtr.h:773
FORCEINLINE TObjectPtr(T &Object)
Definition ObjectPtr.h:561
constexpr FORCEINLINE TObjectPtr(const U &Object)
Definition ObjectPtr.h:555
FORCEINLINE bool IsRemote() const
Definition ObjectPtr.h:730
FORCEINLINE constexpr TObjectPtr(TYPE_OF_NULLPTR)
Definition ObjectPtr.h:526
FORCEINLINE T & operator*() const
Definition ObjectPtr.h:707
FORCEINLINE bool UEOpEquals(TYPE_OF_NULLPTR) const
Definition ObjectPtr.h:643
friend struct TObjectPtr
Definition ObjectPtr.h:797
T Type
Definition ObjectPtr.h:1350
T Type
Definition ObjectPtr.h:1344
Definition ObjectPtr.h:1339
Definition ObjectPtr.h:970
TPrivateObjectPtr(const TPrivateObjectPtr< T > &Other)=default
T Type
Definition ObjectPtr.h:835
Definition ObjectPtr.h:829
T Type
Definition ObjectPtr.h:830
Definition WeakObjectPtrTemplates.h:25
static void Close(ViewType &View)
Definition ObjectPtr.h:1508
static void Close(ViewType &View)
Definition ObjectPtr.h:1549
static void Close(ViewType &View)
Definition ObjectPtr.h:1494
static void Close(ViewType &View)
Definition ObjectPtr.h:1529
Definition ObjectPtr.h:1487
static FORCEINLINE void PerformDecayActions(const TArray< T > &Value)
Definition ObjectPtr.h:1415
static FORCEINLINE void PerformDecayActions(const TMap< K, V > &Value)
Definition ObjectPtr.h:1400
static FORCEINLINE void PerformDecayActions(const TNonNullPtr< TObjectPtr< T > > &Value)
Definition ObjectPtr.h:1429
T * Type
Definition ObjectPtr.h:1370
static FORCEINLINE void PerformDecayActions(const TObjectPtr< T > &Value)
Definition ObjectPtr.h:1372
static FORCEINLINE void PerformDecayActions(const TSet< T > &Value)
Definition ObjectPtr.h:1386
TSet< typename TObjectPtrDecayTypeOf< T >::Type > Type
Definition ObjectPtr.h:1384
Definition ObjectPtr.h:1362
static FORCEINLINE void PerformDecayActions(const T &)
Definition ObjectPtr.h:1364
T Type
Definition ObjectPtr.h:1363
TSet< typename TObjectPtrWrapTypeOf< T >::Type > Type
Definition ObjectPtr.h:1464
Definition ObjectPtr.h:1439
T Type
Definition ObjectPtr.h:1440