18#ifndef UE_DEPRECATE_SOFTOBJECTPTR_CONVERSIONS
19 #define UE_DEPRECATE_SOFTOBJECTPTR_CONVERSIONS 1
21#if UE_DEPRECATE_SOFTOBJECTPTR_CONVERSIONS
22 #define UE_SOFTOBJECTPTR_CONVERSION_DEPRECATED(Version, Message) UE_DEPRECATED(Version, Message)
24 #define UE_SOFTOBJECTPTR_CONVERSION_DEPRECATED(Version, Message)
152 template <
typename T>
172template<
class T=UObject>
194 : SoftObjectPtr(
Other.SoftObjectPtr)
203 : SoftObjectPtr(
Other.SoftObjectPtr)
245#if UE_ENABLE_NOTNULL_WRAPPER
287 : SoftObjectPtr(nullptr)
294 UE_REQUIRES(std::is_same_v<SoftObjectPathType, FSoftObjectPath>)
315 SoftObjectPtr.
Reset();
345#if UE_ENABLE_NOTNULL_WRAPPER
392 SoftObjectPtr =
nullptr;
410 SoftObjectPtr =
Other;
420 SoftObjectPtr =
Other;
453 return SoftObjectPtr == Rhs.SoftObjectPtr;
461 return SoftObjectPtr == Rhs.SoftObjectPtr;
470 return SoftObjectPtr == Rhs.SoftObjectPtr;
491 return SoftObjectPtr ==
nullptr;
541 return Get() !=
nullptr;
561 return SoftObjectPtr.
IsNull();
624#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
644template <
typename RhsType>
656 return !(Lhs == Rhs);
666 return !(Lhs ==
Rhs);
675 return !(Lhs == Rhs);
685 return !(Lhs ==
Rhs);
687template <
typename LhsType>
690 return !(Lhs == Rhs);
699 return !(Lhs == Rhs);
709 return !(Lhs ==
Rhs);
711template <
typename RhsType>
714 return !(Lhs == Rhs);
747 static_assert(std::is_base_of_v<UObject, T>,
"Type must derive from UObject");
754 static_assert(std::is_base_of_v<UObject, T>,
"Type must derive from UObject");
761template<
class TClass=UObject>
764 template <
class TClassA>
780 UE_REQUIRES(std::is_convertible_v<TClassA*, TClass*>)
783 : SoftObjectPtr(
Other.SoftObjectPtr)
789 : SoftObjectPtr(From)
802 SoftObjectPtr.
Reset();
814 SoftObjectPtr = From;
826 UE_REQUIRES(std::is_convertible_v<TClassA*, TClass*>)
830 SoftObjectPtr =
Other;
837 UE_REQUIRES(std::is_convertible_v<TClassA*, TClass*>)
841 SoftObjectPtr =
Other.SoftObjectPtr;
853 return SoftObjectPtr ==
Other.SoftObjectPtr;
855#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
864 return SoftObjectPtr !=
Other.SoftObjectPtr;
876 if (!
Class || !
Class->IsChildOf(TClass::StaticClass()))
903 return Get() !=
nullptr;
923 return SoftObjectPtr.
IsNull();
979 if (!
Class || !
Class->IsChildOf(TClass::StaticClass()))
1011template <
typename T>
1021 static_assert(std::is_base_of_v<UClass, T>,
"Type must derive from UClass");
1028 static_assert(std::is_base_of_v<UClass, T>,
"Type must derive from UClass");
1035 template <
typename SoftObjectPtrType>
1045 template <
typename SoftObjectPtrType>
1059#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
1060template<
class TClass>
1066template<
class TClass>
1074template<
class TClass>
1080template<
class TClass>
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
T * ToRawPtr(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:1000
T TNotNull
Definition NotNull.h:307
const bool
Definition NetworkReplayStreaming.h:178
#define UE_REQUIRES(...)
Definition Requires.h:86
FArchive & operator<<(FArchive &Ar, TSoftObjectPtr< T > &Ptr)
Definition SoftObjectPtr.h:726
TSoftClassPtr< std::remove_cv_t< T > > MakeSoftClassPtr(T *Object)
Definition SoftObjectPtr.h:1019
UE_FORCEINLINE_HINT uint32 GetTypeHash(const TSoftObjectPtr< T > &Ptr)
Definition SoftObjectPtr.h:720
#define UE_SOFTOBJECTPTR_CONVERSION_DEPRECATED(Version, Message)
Definition SoftObjectPtr.h:22
UE_FORCEINLINE_HINT bool operator!=(const TSoftObjectPtr< LhsType > &Lhs, const TSoftObjectPtr< RhsType > &Rhs)
Definition SoftObjectPtr.h:654
TSoftObjectPtr< T > MakeSoftObjectPtr(T *Object)
Definition SoftObjectPtr.h:745
UE_FORCEINLINE_HINT bool operator==(LhsType *Lhs, const TSoftObjectPtr< RhsType > &Rhs)
Definition SoftObjectPtr.h:630
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Archive.h:1208
Definition NameTypes.h:617
Definition SoftObjectPtr.h:763
UE_FORCEINLINE_HINT TSoftClassPtr & operator=(const TSoftClassPtr &Other)=default
TClass ElementType
Definition SoftObjectPtr.h:768
UE_FORCEINLINE_HINT TSoftClassPtr(TSoftClassPtr &&Other)=default
TSoftClassPtr & operator=(const TSoftObjectPtr< TClassA > &Other)
Definition SoftObjectPtr.h:839
UE_FORCEINLINE_HINT bool IsPending() const
Definition SoftObjectPtr.h:911
void Serialize(FArchive &Ar)
Definition SoftObjectPtr.h:999
UE_FORCEINLINE_HINT void operator=(const FSoftObjectPath &ObjectPath)
Definition SoftObjectPtr.h:818
UE_FORCEINLINE_HINT bool operator==(const TSoftClassPtr &Other) const
Definition SoftObjectPtr.h:851
UE_FORCEINLINE_HINT TSoftClassPtr(const TSoftClassPtr< TClassA > &Other)
Definition SoftObjectPtr.h:782
int32 LoadAsync(FLoadSoftObjectPathAsyncDelegate InCompletionDelegate, FLoadAssetAsyncOptionalParams InOptionalParams=FLoadAssetAsyncOptionalParams()) const
Definition SoftObjectPtr.h:994
UE_FORCEINLINE_HINT void operator=(const UClass *From)
Definition SoftObjectPtr.h:812
UE_FORCEINLINE_HINT const FSoftObjectPath & ToSoftObjectPath() const
Definition SoftObjectPtr.h:933
UE_FORCEINLINE_HINT bool IsValid() const
Definition SoftObjectPtr.h:900
UE_FORCEINLINE_HINT FString GetLongPackageName() const
Definition SoftObjectPtr.h:945
UE_FORCEINLINE_HINT ~TSoftClassPtr()=default
TSoftClassPtr & operator=(const TWeakObjectPtr< TClassA > &Other)
Definition SoftObjectPtr.h:828
UE_FORCEINLINE_HINT TSoftClassPtr(const UClass *From)
Definition SoftObjectPtr.h:788
UE_FORCEINLINE_HINT FName GetLongPackageFName() const
Definition SoftObjectPtr.h:951
UClass * LoadSynchronous() const
Definition SoftObjectPtr.h:975
UE_FORCEINLINE_HINT TSoftClassPtr()=default
UE_FORCEINLINE_HINT void ResetWeakPtr()
Definition SoftObjectPtr.h:806
UE_FORCEINLINE_HINT UClass * operator->() const
Definition SoftObjectPtr.h:890
UE_FORCEINLINE_HINT const FSoftObjectPath & GetUniqueID() const
Definition SoftObjectPtr.h:927
UE_FORCEINLINE_HINT FString ToString() const
Definition SoftObjectPtr.h:939
UE_FORCEINLINE_HINT bool IsNull() const
Definition SoftObjectPtr.h:921
UE_FORCEINLINE_HINT void Reset()
Definition SoftObjectPtr.h:800
UE_FORCEINLINE_HINT TSoftClassPtr(const TSoftClassPtr &Other)=default
UE_FORCEINLINE_HINT TSoftClassPtr(const FSoftObjectPath &ObjectPath)
Definition SoftObjectPtr.h:794
UE_FORCEINLINE_HINT FString GetAssetName() const
Definition SoftObjectPtr.h:957
UClass * Get() const
Definition SoftObjectPtr.h:873
UE_FORCEINLINE_HINT bool operator!=(const TSoftClassPtr &Other) const
Definition SoftObjectPtr.h:862
UE_FORCEINLINE_HINT uint32 GetPtrTypeHash() const
Definition SoftObjectPtr.h:969
UE_FORCEINLINE_HINT UClass & operator*() const
Definition SoftObjectPtr.h:884
UE_FORCEINLINE_HINT TSoftClassPtr & operator=(TSoftClassPtr &&Other)=default
FORCEINLINE UE_STRING_CLASS RhsType && Rhs
Definition String.cpp.inl:718
int32 GetPlayInEditorID()
Definition CoreGlobals.cpp:877
Definition ObjectPtr.h:55
Definition SoftObjectPath.h:507
bool operator()(const FSoftObjectPath &Lhs, const FSoftObjectPath &Rhs) const
Definition SoftObjectPath.h:508
Definition SoftObjectPath.h:516
bool operator()(const FSoftObjectPath &Lhs, const FSoftObjectPath &Rhs) const
Definition SoftObjectPath.h:517
Definition SoftObjectPath.h:56
FName GetLongPackageFName() const
Definition SoftObjectPath.h:267
COREUOBJECT_API int32 LoadAsync(FLoadSoftObjectPathAsyncDelegate InCompletionDelegate, FLoadAssetAsyncOptionalParams InOptionalParams=FLoadAssetAsyncOptionalParams()) const
Definition SoftObjectPath.cpp:840
COREUOBJECT_API UObject * ResolveObject() const
Definition SoftObjectPath.cpp:874
COREUOBJECT_API UObject * TryLoad(FUObjectSerializeContext *InLoadContext=nullptr) const
Definition SoftObjectPath.cpp:781
FString GetAssetName() const
Definition SoftObjectPath.h:273
COREUOBJECT_API FString ToString() const
Definition SoftObjectPath.cpp:97
FString GetLongPackageName() const
Definition SoftObjectPath.h:260
Definition SoftObjectPtr.h:1034
bool operator()(const SoftObjectPtrType &Lhs, const SoftObjectPtrType &Rhs) const
Definition SoftObjectPtr.h:1036
Definition SoftObjectPtr.h:1044
bool operator()(const SoftObjectPtrType &Lhs, const SoftObjectPtrType &Rhs) const
Definition SoftObjectPtr.h:1046
Definition SoftObjectPtr.h:45
UE_FORCEINLINE_HINT FString GetAssetName() const
Definition SoftObjectPtr.h:120
FSoftObjectPtr & operator=(FObjectPtr Ptr)
Definition SoftObjectPtr.h:142
UE_FORCEINLINE_HINT FName GetLongPackageFName() const
Definition SoftObjectPtr.h:114
UE_FORCEINLINE_HINT const FSoftObjectPath & ToSoftObjectPath() const
Definition SoftObjectPtr.h:96
UE_FORCEINLINE_HINT FSoftObjectPtr(const UObject *Object)
Definition SoftObjectPtr.h:66
UE_FORCEINLINE_HINT FSoftObjectPtr & operator=(const FSoftObjectPtr &Other)=default
UE_FORCEINLINE_HINT FSoftObjectPtr & operator=(const UObject *Ptr)
Definition SoftObjectPtr.h:148
UE_FORCEINLINE_HINT FSoftObjectPtr & operator=(FSoftObjectPtr &&Other)=default
UE_FORCEINLINE_HINT FString GetLongPackageName() const
Definition SoftObjectPtr.h:108
UE_FORCEINLINE_HINT FSoftObjectPtr(TObjectPtr< T > Object)
Definition SoftObjectPtr.h:71
UE_FORCEINLINE_HINT FSoftObjectPtr(const FSoftObjectPath &ObjectPath)
Definition SoftObjectPtr.h:57
UE_FORCEINLINE_HINT FSoftObjectPtr(FSoftObjectPtr &&Other)=default
UE_FORCEINLINE_HINT ~FSoftObjectPtr()=default
UE_FORCEINLINE_HINT FSoftObjectPtr & operator=(TObjectPtr< T > Ptr)
Definition SoftObjectPtr.h:153
UE_FORCEINLINE_HINT FSoftObjectPtr()=default
UE_FORCEINLINE_HINT FString ToString() const
Definition SoftObjectPtr.h:102
UE_FORCEINLINE_HINT FSoftObjectPtr(const FSoftObjectPtr &Other)=default
UE_FORCEINLINE_HINT FSoftObjectPtr(FObjectPtr Object)
Definition SoftObjectPtr.h:62
UObject * LoadSynchronous() const
Definition SoftObjectPtr.h:82
Definition UnrealTypeTraits.h:267
Definition UnrealTypeTraits.h:283
Definition IsPODType.h:12
@ Value
Definition IsPODType.h:13
Definition SoftObjectPtr.h:33
@ Value
Definition SoftObjectPtr.h:34
Definition UnrealTypeTraits.h:181
@ Value
Definition UnrealTypeTraits.h:182
Definition ObjectPtr.h:488
Definition PersistentObjectPtr.h:19
UE_FORCEINLINE_HINT bool IsPending() const
Definition PersistentObjectPtr.h:218
UObject * Get() const
Definition PersistentObjectPtr.h:120
UE_FORCEINLINE_HINT const FSoftObjectPath & GetUniqueID() const
Definition PersistentObjectPtr.h:104
UE_FORCEINLINE_HINT bool IsNull() const
Definition PersistentObjectPtr.h:247
void Reset()
Definition PersistentObjectPtr.h:29
UE_FORCEINLINE_HINT void ResetWeakPtr()
Definition PersistentObjectPtr.h:36
Definition SoftObjectPtr.h:174
UE_FORCEINLINE_HINT uint32 GetPtrTypeHash() const
Definition SoftObjectPtr.h:607
friend struct TSoftObjectPtr
Definition SoftObjectPtr.h:176
UE_FORCEINLINE_HINT void ResetWeakPtr()
Definition SoftObjectPtr.h:319
T ElementType
Definition SoftObjectPtr.h:179
UE_FORCEINLINE_HINT void Serialize(FArchive &Ar)
Definition SoftObjectPtr.h:612
T * Get() const
Definition SoftObjectPtr.h:1054
UE_FORCEINLINE_HINT bool IsNull() const
Definition SoftObjectPtr.h:559
UE_FORCEINLINE_HINT TSoftObjectPtr(const TSoftObjectPtr &Other)=default
UE_FORCEINLINE_HINT bool IsPending() const
Definition SoftObjectPtr.h:549
T * LoadSynchronous() const
Definition SoftObjectPtr.h:514
UE_FORCEINLINE_HINT TSoftObjectPtr(U *Object)
Definition SoftObjectPtr.h:231
UE_FORCEINLINE_HINT TSoftObjectPtr(TSoftObjectPtr &&Other)=default
TSoftObjectPtr(const FString &Path)
Definition SoftObjectPtr.h:307
UE_FORCEINLINE_HINT TSoftObjectPtr(TSoftObjectPtr< U > &&Other)
Definition SoftObjectPtr.h:212
int32 LoadAsync(FLoadSoftObjectPathAsyncDelegate InCompletionDelegate, FLoadAssetAsyncOptionalParams InOptionalParams=FLoadAssetAsyncOptionalParams()) const
Definition SoftObjectPtr.h:528
UE_FORCEINLINE_HINT TSoftObjectPtr(const TSoftObjectPtr< U > &Other)
Definition SoftObjectPtr.h:193
UE_FORCEINLINE_HINT bool operator==(const TSoftObjectPtr &Rhs) const
Definition SoftObjectPtr.h:451
UE_FORCEINLINE_HINT FString ToString() const
Definition SoftObjectPtr.h:577
UE_FORCEINLINE_HINT bool operator==(const TSoftObjectPtr< U > &Rhs) const
Definition SoftObjectPtr.h:459
UE_FORCEINLINE_HINT const FSoftObjectPath & GetUniqueID() const
Definition SoftObjectPtr.h:565
UE_FORCEINLINE_HINT bool operator==(U *Rhs) const
Definition SoftObjectPtr.h:476
UE_FORCEINLINE_HINT T & operator*() const
Definition SoftObjectPtr.h:502
UE_FORCEINLINE_HINT bool operator==(TYPE_OF_NULLPTR) const
Definition SoftObjectPtr.h:489
UE_FORCEINLINE_HINT ~TSoftObjectPtr()=default
UE_FORCEINLINE_HINT FString GetLongPackageName() const
Definition SoftObjectPtr.h:583
UE_FORCEINLINE_HINT TSoftObjectPtr(SoftObjectPathType ObjectPath)
Definition SoftObjectPtr.h:296
UE_FORCEINLINE_HINT TSoftObjectPtr(const TObjectPtr< U > Object)
Definition SoftObjectPtr.h:271
TSoftObjectPtr & operator=(const TObjectPtr< U > Object)
Definition SoftObjectPtr.h:373
UE_FORCEINLINE_HINT FString GetAssetName() const
Definition SoftObjectPtr.h:595
UE_FORCEINLINE_HINT T * operator->() const
Definition SoftObjectPtr.h:508
UE_FORCEINLINE_HINT TSoftObjectPtr & operator=(TSoftObjectPtr &&Other)=default
UE_FORCEINLINE_HINT void Reset()
Definition SoftObjectPtr.h:313
UE_FORCEINLINE_HINT TSoftObjectPtr()=default
UE_FORCEINLINE_HINT const FSoftObjectPath & ToSoftObjectPath() const
Definition SoftObjectPtr.h:571
TSoftObjectPtr & operator=(TYPE_OF_NULLPTR)
Definition SoftObjectPtr.h:390
TSoftObjectPtr & operator=(TSoftObjectPtr< U > Other)
Definition SoftObjectPtr.h:429
UE_FORCEINLINE_HINT TSoftObjectPtr & operator=(const TSoftObjectPtr &Other)=default
UE_FORCEINLINE_HINT FName GetLongPackageFName() const
Definition SoftObjectPtr.h:589
UE_FORCEINLINE_HINT bool IsValid() const
Definition SoftObjectPtr.h:538
TSoftObjectPtr & operator=(const TWeakObjectPtr< U > &Other)
Definition SoftObjectPtr.h:408
UE_FORCEINLINE_HINT TSoftObjectPtr(TYPE_OF_NULLPTR)
Definition SoftObjectPtr.h:286
TSoftObjectPtr & operator=(FSoftObjectPath ObjectPath)
Definition SoftObjectPtr.h:397
TSoftObjectPtr & operator=(U *Object)
Definition SoftObjectPtr.h:329
Definition WeakObjectPtrTemplates.h:25