UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TUniquePtr< T, Deleter > Class Template Reference

#include <UniquePtr.h>

+ Inheritance diagram for TUniquePtr< T, Deleter >:

Public Types

using ElementType = T
 

Public Member Functions

 TUniquePtr (const TUniquePtr &)=delete
 
TUniquePtroperator= (const TUniquePtr &)=delete
 
constexpr TUniquePtr ()
 
template<typename U >
 TUniquePtr (U *InPtr)
 
template<typename U >
 TUniquePtr (U *InPtr, Deleter &&InDeleter)
 
template<typename U >
 TUniquePtr (U *InPtr, const Deleter &InDeleter)
 
 TUniquePtr (TYPE_OF_NULLPTR)
 
 TUniquePtr (TUniquePtr &&Other)
 
template<typename OtherT , typename OtherDeleter UE_REQUIRES>
 TUniquePtr (TUniquePtr< OtherT, OtherDeleter > &&Other)
 
TUniquePtroperator= (TUniquePtr &&Other)
 
template<typename OtherT , typename OtherDeleter UE_REQUIRES>
TUniquePtroperator= (TUniquePtr< OtherT, OtherDeleter > &&Other)
 
TUniquePtroperator= (TYPE_OF_NULLPTR)
 
UE_FORCEINLINE_HINT ~TUniquePtr ()
 
bool IsValid () const
 
UE_FORCEINLINE_HINT operator bool () const
 
UE_FORCEINLINE_HINT T * operator-> () const
 
template<typename DummyT = T UE_REQUIRES(UE_REQUIRES_EXPR(*(DummyT*)nullptr))>
UE_FORCEINLINE_HINT DummyToperator* () const
 
UE_FORCEINLINE_HINT T * Get () const
 
T * Release ()
 
void Reset (T *InPtr=nullptr)
 
UE_FORCEINLINE_HINT Deleter & GetDeleter ()
 
UE_FORCEINLINE_HINT const Deleter & GetDeleter () const
 
template<typename RhsT >
UE_FORCEINLINE_HINT bool operator== (const TUniquePtr< RhsT > &Rhs) const
 
template<typename RhsT >
UE_FORCEINLINE_HINT bool operator< (const TUniquePtr< RhsT > &Rhs) const
 
template<typename RhsT >
UE_FORCEINLINE_HINT bool operator> (const TUniquePtr< RhsT > &Rhs) const
 
template<typename RhsT >
UE_FORCEINLINE_HINT bool operator<= (const TUniquePtr< RhsT > &Rhs) const
 
template<typename RhsT >
UE_FORCEINLINE_HINT bool operator>= (const TUniquePtr< RhsT > &Rhs) const
 
UE_FORCEINLINE_HINT bool operator== (TYPE_OF_NULLPTR) const
 
template<typename RhsT >
UE_FORCEINLINE_HINT bool operator!= (const TUniquePtr< RhsT > &Rhs) const
 
UE_FORCEINLINE_HINT bool operator!= (TYPE_OF_NULLPTR) const
 

Friends

template<typename OtherT , typename OtherDeleter >
class TUniquePtr
 
uint32 GetTypeHash (const TUniquePtr &UniquePtr)
 

Member Typedef Documentation

◆ ElementType

template<typename T , typename Deleter = TDefaultDelete<T>>
using TUniquePtr< T, Deleter >::ElementType = T

Constructor & Destructor Documentation

◆ TUniquePtr() [1/8]

template<typename T , typename Deleter = TDefaultDelete<T>>
TUniquePtr< T, Deleter >::TUniquePtr ( const TUniquePtr< T, Deleter > &  )
delete

◆ TUniquePtr() [2/8]

template<typename T , typename Deleter = TDefaultDelete<T>>
constexpr TUniquePtr< T, Deleter >::TUniquePtr ( )
inlineconstexpr

Default constructor - initializes the TUniquePtr to null.

◆ TUniquePtr() [3/8]

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename U >
TUniquePtr< T, Deleter >::TUniquePtr ( U *  InPtr)
inlineexplicit

Pointer constructor - takes ownership of the pointed-to object

Parameters
InPtrThe pointed-to object to take ownership of.

◆ TUniquePtr() [4/8]

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename U >
TUniquePtr< T, Deleter >::TUniquePtr ( U *  InPtr,
Deleter &&  InDeleter 
)
inlineexplicit

Pointer constructor - takes ownership of the pointed-to object

Parameters
InPtrThe pointed-to object to take ownership of.

◆ TUniquePtr() [5/8]

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename U >
TUniquePtr< T, Deleter >::TUniquePtr ( U *  InPtr,
const Deleter &  InDeleter 
)
inlineexplicit

Pointer constructor - takes ownership of the pointed-to object

Parameters
InPtrThe pointed-to object to take ownership of.

◆ TUniquePtr() [6/8]

template<typename T , typename Deleter = TDefaultDelete<T>>
TUniquePtr< T, Deleter >::TUniquePtr ( TYPE_OF_NULLPTR  )
inline

nullptr constructor - initializes the TUniquePtr to null.

◆ TUniquePtr() [7/8]

template<typename T , typename Deleter = TDefaultDelete<T>>
TUniquePtr< T, Deleter >::TUniquePtr ( TUniquePtr< T, Deleter > &&  Other)
inline

Move constructor

◆ TUniquePtr() [8/8]

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename OtherT , typename OtherDeleter UE_REQUIRES>
TUniquePtr< T, Deleter >::TUniquePtr ( TUniquePtr< OtherT, OtherDeleter > &&  Other)
inline

Constructor from rvalues of other (usually derived) types

◆ ~TUniquePtr()

template<typename T , typename Deleter = TDefaultDelete<T>>
UE_FORCEINLINE_HINT TUniquePtr< T, Deleter >::~TUniquePtr ( )
inline

Destructor

Member Function Documentation

◆ Get()

template<typename T , typename Deleter = TDefaultDelete<T>>
UE_FORCEINLINE_HINT T * TUniquePtr< T, Deleter >::Get ( ) const
inline

Returns a pointer to the owned object without relinquishing ownership.

Returns
A copy of the pointer to the object owned by the TUniquePtr, or nullptr if no object is being owned.

◆ GetDeleter() [1/2]

template<typename T , typename Deleter = TDefaultDelete<T>>
UE_FORCEINLINE_HINT Deleter & TUniquePtr< T, Deleter >::GetDeleter ( )
inline

Returns a reference to the deleter subobject.

Returns
A reference to the deleter.

◆ GetDeleter() [2/2]

template<typename T , typename Deleter = TDefaultDelete<T>>
UE_FORCEINLINE_HINT const Deleter & TUniquePtr< T, Deleter >::GetDeleter ( ) const
inline

Returns a reference to the deleter subobject.

Returns
A reference to the deleter.

◆ IsValid()

template<typename T , typename Deleter = TDefaultDelete<T>>
bool TUniquePtr< T, Deleter >::IsValid ( ) const
inline

Tests if the TUniquePtr currently owns an object.

Returns
true if the TUniquePtr currently owns an object, false otherwise.

◆ operator bool()

template<typename T , typename Deleter = TDefaultDelete<T>>
UE_FORCEINLINE_HINT TUniquePtr< T, Deleter >::operator bool ( ) const
inlineexplicit

operator bool

Returns
true if the TUniquePtr currently owns an object, false otherwise.

◆ operator!=() [1/2]

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename RhsT >
UE_FORCEINLINE_HINT bool TUniquePtr< T, Deleter >::operator!= ( const TUniquePtr< RhsT > &  Rhs) const
inline

Inequality comparison operator

Parameters
LhsThe first TUniquePtr to compare.
RhsThe second TUniquePtr to compare.
Returns
false if the two TUniquePtrs are logically substitutable for each other, true otherwise.

◆ operator!=() [2/2]

template<typename T , typename Deleter = TDefaultDelete<T>>
UE_FORCEINLINE_HINT bool TUniquePtr< T, Deleter >::operator!= ( TYPE_OF_NULLPTR  ) const
inline

Inequality comparison operator against nullptr.

Parameters
RhsThe TUniquePtr to compare.
Returns
true if the TUniquePtr is not null, false otherwise.

◆ operator*()

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename DummyT = T UE_REQUIRES(UE_REQUIRES_EXPR(*(DummyT*)nullptr))>
UE_FORCEINLINE_HINT DummyT & TUniquePtr< T, Deleter >::operator* ( ) const
inline

Dereference operator

Returns
A reference to the object owned by the TUniquePtr.

◆ operator->()

template<typename T , typename Deleter = TDefaultDelete<T>>
UE_FORCEINLINE_HINT T * TUniquePtr< T, Deleter >::operator-> ( ) const
inline

Indirection operator

Returns
A pointer to the object owned by the TUniquePtr.

◆ operator<()

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename RhsT >
UE_FORCEINLINE_HINT bool TUniquePtr< T, Deleter >::operator< ( const TUniquePtr< RhsT > &  Rhs) const
inline

Less-than comparison operator

Parameters
LhsThe first TUniquePtr to compare.
RhsThe second TUniquePtr to compare.
Returns
true if the inner pointer of the left TUniquePtr is less than the inner pointer of the right, false otherwise.

◆ operator<=()

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename RhsT >
UE_FORCEINLINE_HINT bool TUniquePtr< T, Deleter >::operator<= ( const TUniquePtr< RhsT > &  Rhs) const
inline

Less-than-or-equals comparison operator

Parameters
LhsThe first TUniquePtr to compare.
RhsThe second TUniquePtr to compare.
Returns
true if the inner pointer of the left TUniquePtr is less than or equal to the inner pointer of the right, false otherwise.

◆ operator=() [1/4]

template<typename T , typename Deleter = TDefaultDelete<T>>
TUniquePtr & TUniquePtr< T, Deleter >::operator= ( const TUniquePtr< T, Deleter > &  )
delete

◆ operator=() [2/4]

template<typename T , typename Deleter = TDefaultDelete<T>>
TUniquePtr & TUniquePtr< T, Deleter >::operator= ( TUniquePtr< T, Deleter > &&  Other)
inline

Move assignment operator

◆ operator=() [3/4]

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename OtherT , typename OtherDeleter UE_REQUIRES>
TUniquePtr & TUniquePtr< T, Deleter >::operator= ( TUniquePtr< OtherT, OtherDeleter > &&  Other)
inline

Assignment operator for rvalues of other (usually derived) types

◆ operator=() [4/4]

template<typename T , typename Deleter = TDefaultDelete<T>>
TUniquePtr & TUniquePtr< T, Deleter >::operator= ( TYPE_OF_NULLPTR  )
inline

Nullptr assignment operator

◆ operator==() [1/2]

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename RhsT >
UE_FORCEINLINE_HINT bool TUniquePtr< T, Deleter >::operator== ( const TUniquePtr< RhsT > &  Rhs) const
inline

Equality comparison operator

Parameters
LhsThe first TUniquePtr to compare.
RhsThe second TUniquePtr to compare.
Returns
true if the two TUniquePtrs are logically substitutable for each other, false otherwise.

◆ operator==() [2/2]

template<typename T , typename Deleter = TDefaultDelete<T>>
UE_FORCEINLINE_HINT bool TUniquePtr< T, Deleter >::operator== ( TYPE_OF_NULLPTR  ) const
inline

Equality comparison operator against nullptr.

Parameters
LhsThe TUniquePtr to compare.
Returns
true if the TUniquePtr is null, false otherwise.

◆ operator>()

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename RhsT >
UE_FORCEINLINE_HINT bool TUniquePtr< T, Deleter >::operator> ( const TUniquePtr< RhsT > &  Rhs) const
inline

Greater-than comparison operator

Parameters
LhsThe first TUniquePtr to compare.
RhsThe second TUniquePtr to compare.
Returns
true if the inner pointer of the left TUniquePtr is greater than the inner pointer of the right, false otherwise.

◆ operator>=()

template<typename T , typename Deleter = TDefaultDelete<T>>
template<typename RhsT >
UE_FORCEINLINE_HINT bool TUniquePtr< T, Deleter >::operator>= ( const TUniquePtr< RhsT > &  Rhs) const
inline

Greater-than-or-equals comparison operator

Parameters
LhsThe first TUniquePtr to compare.
RhsThe second TUniquePtr to compare.
Returns
true if the inner pointer of the left TUniquePtr is greater than or equal to the inner pointer of the right, false otherwise.

◆ Release()

template<typename T , typename Deleter = TDefaultDelete<T>>
T * TUniquePtr< T, Deleter >::Release ( )
inline

Relinquishes control of the owned object to the caller and nulls the TUniquePtr.

Returns
The pointer to the object that was owned by the TUniquePtr, or nullptr if no object was being owned.

◆ Reset()

template<typename T , typename Deleter = TDefaultDelete<T>>
void TUniquePtr< T, Deleter >::Reset ( T *  InPtr = nullptr)
inline

Gives the TUniquePtr a new object to own, destroying any previously-owned object.

Parameters
InPtrA pointer to the object to take ownership of.

Friends And Related Symbol Documentation

◆ GetTypeHash

template<typename T , typename Deleter = TDefaultDelete<T>>
uint32 GetTypeHash ( const TUniquePtr< T, Deleter > &  UniquePtr)
friend

◆ TUniquePtr

template<typename T , typename Deleter = TDefaultDelete<T>>
friend class TUniquePtr
friend

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