105template <
typename T,
typename Deleter = TDefaultDelete<T>>
110 template <
typename OtherT,
typename OtherDeleter>
200 !std::is_array_v<OtherT> &&
201 std::is_convertible_v<OtherT*, T*>
237 !std::is_array_v<OtherT> &&
238 std::is_convertible_v<OtherT*, T*>
282 return Ptr !=
nullptr;
364 return static_cast<Deleter&
>(*this);
374 return static_cast<const Deleter&
>(*this);
390 template <
typename RhsT>
393 return Get() == Rhs.Get();
404 template <
typename RhsT>
407 return Get() < Rhs.Get();
418 template <
typename RhsT>
421 return Get() > Rhs.Get();
432 template <
typename RhsT>
435 return Get() <= Rhs.Get();
446 template <
typename RhsT>
449 return Get() >= Rhs.Get();
464#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
473 template <
typename RhsT>
476 return Get() != Rhs.Get();
498template <
typename T,
typename Deleter>
501 template <
typename OtherT,
typename OtherDeleter>
667 return Ptr !=
nullptr;
744 return static_cast<Deleter&
>(*this);
754 return static_cast<const Deleter&
>(*this);
769 template <
typename RhsT>
772 return Get() == Rhs.Get();
783 template <
typename RhsT>
786 return Get() < Rhs.Get();
797 template <
typename RhsT>
800 return Get() > Rhs.Get();
811 template <
typename RhsT>
814 return Get() <= Rhs.Get();
825 template <
typename RhsT>
828 return Get() >= Rhs.Get();
843#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
852 template <
typename RhsT>
855 return Get() != Rhs.Get();
877#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
881 return !Rhs.IsValid();
887 return Rhs.IsValid();
955 using ElementType = std::remove_extent_t<T>;
973 using ElementType = std::remove_extent_t<T>;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define LAYOUT_FIELD(T, Name,...)
Definition MemoryLayout.h:471
#define DECLARE_INLINE_TYPE_LAYOUT_EXPLICIT_BASES(T, Interface,...)
Definition MemoryLayout.h:562
const bool
Definition NetworkReplayStreaming.h:178
#define UE_REQUIRES(...)
Definition Requires.h:86
#define UE_REQUIRES_EXPR(...)
Definition Requires.h:89
UE_FORCEINLINE_HINT bool operator!=(TYPE_OF_NULLPTR, const TUniquePtr< T > &Rhs)
Definition UniquePtr.h:885
UE_FORCEINLINE_HINT bool operator==(TYPE_OF_NULLPTR, const TUniquePtr< T > &Rhs)
Definition UniquePtr.h:879
constexpr bool TIsTUniquePtr_V
Definition UniquePtr.h:990
UE_FORCEINLINE_HINT TUniquePtr< T > MakeUnique(TArgs &&... Args)
Definition UniquePtr.h:918
UE_FORCEINLINE_HINT TUniquePtr< T > MakeUniqueForOverwrite()
Definition UniquePtr.h:936
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
TUniquePtr(const TUniquePtr &)=delete
UE_FORCEINLINE_HINT bool operator!=(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:853
UE_FORCEINLINE_HINT bool operator>(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:798
T * Release()
Definition UniquePtr.h:705
TUniquePtr(U *InPtr, const Deleter &InDeleter)
Definition UniquePtr.h:559
bool IsValid() const
Definition UniquePtr.h:665
UE_FORCEINLINE_HINT const Deleter & GetDeleter() const
Definition UniquePtr.h:752
UE_FORCEINLINE_HINT bool operator==(TYPE_OF_NULLPTR) const
Definition UniquePtr.h:838
TUniquePtr & operator=(TYPE_OF_NULLPTR)
Definition UniquePtr.h:642
UE_FORCEINLINE_HINT T & operator[](SIZE_T Index) const
Definition UniquePtr.h:685
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:695
UE_FORCEINLINE_HINT bool operator!=(TYPE_OF_NULLPTR) const
Definition UniquePtr.h:865
constexpr TUniquePtr(TYPE_OF_NULLPTR)
Definition UniquePtr.h:568
TUniquePtr(U *InPtr)
Definition UniquePtr.h:529
UE_FORCEINLINE_HINT Deleter & GetDeleter()
Definition UniquePtr.h:742
UE_FORCEINLINE_HINT ~TUniquePtr()
Definition UniquePtr.h:655
UE_FORCEINLINE_HINT bool operator==(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:770
void Reset(TYPE_OF_NULLPTR InPtr=nullptr)
Definition UniquePtr.h:729
TUniquePtr(U *InPtr, Deleter &&InDeleter)
Definition UniquePtr.h:544
UE_FORCEINLINE_HINT bool operator<=(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:812
TUniquePtr(TUniquePtr< OtherT, OtherDeleter > &&Other)
Definition UniquePtr.h:592
constexpr TUniquePtr()
Definition UniquePtr.h:514
TUniquePtr & operator=(const TUniquePtr &)=delete
void Reset(U *InPtr)
Definition UniquePtr.h:721
friend uint32 GetTypeHash(const TUniquePtr &UniquePtr)
Definition UniquePtr.h:871
UE_FORCEINLINE_HINT bool operator>=(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:826
UE_FORCEINLINE_HINT bool operator<(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:784
TUniquePtr & operator=(TUniquePtr &&Other)
Definition UniquePtr.h:602
TUniquePtr(TUniquePtr &&Other)
Definition UniquePtr.h:577
TUniquePtr & operator=(TUniquePtr< OtherT, OtherDeleter > &&Other)
Definition UniquePtr.h:626
T ElementType
Definition UniquePtr.h:505
Definition UniquePtr.h:107
TUniquePtr & operator=(TUniquePtr &&Other)
Definition UniquePtr.h:214
UE_FORCEINLINE_HINT bool operator<(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:405
UE_FORCEINLINE_HINT Deleter & GetDeleter()
Definition UniquePtr.h:362
TUniquePtr & operator=(TUniquePtr< OtherT, OtherDeleter > &&Other)
Definition UniquePtr.h:241
UE_FORCEINLINE_HINT bool operator>(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:419
T * Release()
Definition UniquePtr.h:334
UE_FORCEINLINE_HINT bool operator>=(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:447
void Reset(T *InPtr=nullptr)
Definition UniquePtr.h:346
UE_FORCEINLINE_HINT bool operator==(TYPE_OF_NULLPTR) const
Definition UniquePtr.h:459
bool IsValid() const
Definition UniquePtr.h:280
TUniquePtr(TUniquePtr< OtherT, OtherDeleter > &&Other)
Definition UniquePtr.h:204
UE_FORCEINLINE_HINT ~TUniquePtr()
Definition UniquePtr.h:270
UE_FORCEINLINE_HINT const Deleter & GetDeleter() const
Definition UniquePtr.h:372
UE_FORCEINLINE_HINT T * operator->() const
Definition UniquePtr.h:300
UE_FORCEINLINE_HINT bool operator==(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:391
UE_FORCEINLINE_HINT DummyT & operator*() const
Definition UniquePtr.h:314
TUniquePtr(U *InPtr, const Deleter &InDeleter)
Definition UniquePtr.h:168
TUniquePtr & operator=(const TUniquePtr &)=delete
UE_FORCEINLINE_HINT bool operator!=(TYPE_OF_NULLPTR) const
Definition UniquePtr.h:486
T ElementType
Definition UniquePtr.h:114
TUniquePtr & operator=(TYPE_OF_NULLPTR)
Definition UniquePtr.h:257
UE_FORCEINLINE_HINT bool operator!=(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:474
TUniquePtr(const TUniquePtr &)=delete
friend uint32 GetTypeHash(const TUniquePtr &UniquePtr)
Definition UniquePtr.h:492
TUniquePtr(U *InPtr)
Definition UniquePtr.h:138
TUniquePtr(TUniquePtr &&Other)
Definition UniquePtr.h:186
constexpr TUniquePtr()
Definition UniquePtr.h:123
TUniquePtr(TYPE_OF_NULLPTR)
Definition UniquePtr.h:177
UE_FORCEINLINE_HINT bool operator<=(const TUniquePtr< RhsT > &Rhs) const
Definition UniquePtr.h:433
TUniquePtr(U *InPtr, Deleter &&InDeleter)
Definition UniquePtr.h:153
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
U16 Index
Definition radfft.cpp:71
TDefaultDelete & operator=(const TDefaultDelete &)=default
void operator()(U *Ptr) const
Definition UniquePtr.h:99
TDefaultDelete(const TDefaultDelete &)=default
TDefaultDelete & operator=(const TDefaultDelete< U[]> &)
Definition UniquePtr.h:90
TDefaultDelete(const TDefaultDelete< U[]> &)
Definition UniquePtr.h:82
~TDefaultDelete()=default
Definition UniquePtr.h:28
TDefaultDelete(const TDefaultDelete< U > &)
Definition UniquePtr.h:40
TDefaultDelete & operator=(const TDefaultDelete< U > &)
Definition UniquePtr.h:48
TDefaultDelete(const TDefaultDelete &)=default
void operator()(T *Ptr) const
Definition UniquePtr.h:53
~TDefaultDelete()=default
TDefaultDelete & operator=(const TDefaultDelete &)=default
DECLARE_INLINE_TYPE_LAYOUT(TDefaultDelete, NonVirtual)
Definition UnrealTypeTraits.h:410
Definition UnrealTypeTraits.h:172