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 UE_REQUIRES>
 TUniquePtr (U *InPtr)
 
template<typename U UE_REQUIRES>
 TUniquePtr (U *InPtr, Deleter &&InDeleter)
 
template<typename U UE_REQUIRES>
 TUniquePtr (U *InPtr, const Deleter &InDeleter)
 
constexpr 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[] (SIZE_T Index) const
 
UE_FORCEINLINE_HINT T * Get () const
 
T * Release ()
 
template<typename U UE_REQUIRES>
void Reset (U *InPtr)
 
void Reset (TYPE_OF_NULLPTR 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 >
using TUniquePtr< T[], Deleter >::ElementType = T

Constructor & Destructor Documentation

◆ TUniquePtr() [1/8]

template<typename T , typename Deleter >
TUniquePtr< T[], Deleter >::TUniquePtr ( const TUniquePtr< T[], Deleter > &  )
delete

◆ TUniquePtr() [2/8]

template<typename T , typename Deleter >
constexpr TUniquePtr< T[], Deleter >::TUniquePtr ( )
inlineconstexpr

Default constructor - initializes the TUniquePtr to null.

◆ TUniquePtr() [3/8]

template<typename T , typename Deleter >
template<typename U UE_REQUIRES>
TUniquePtr< T[], Deleter >::TUniquePtr ( U *  InPtr)
inlineexplicit

Pointer constructor - takes ownership of the pointed-to array

Parameters
InPtrThe pointed-to array to take ownership of.

◆ TUniquePtr() [4/8]

template<typename T , typename Deleter >
template<typename U UE_REQUIRES>
TUniquePtr< T[], Deleter >::TUniquePtr ( U *  InPtr,
Deleter &&  InDeleter 
)
inlineexplicit

Pointer constructor - takes ownership of the pointed-to array

Parameters
InPtrThe pointed-to array to take ownership of.

◆ TUniquePtr() [5/8]

template<typename T , typename Deleter >
template<typename U UE_REQUIRES>
TUniquePtr< T[], Deleter >::TUniquePtr ( U *  InPtr,
const Deleter &  InDeleter 
)
inlineexplicit

Pointer constructor - takes ownership of the pointed-to array

Parameters
InPtrThe pointed-to array to take ownership of.

◆ TUniquePtr() [6/8]

template<typename T , typename Deleter >
constexpr TUniquePtr< T[], Deleter >::TUniquePtr ( TYPE_OF_NULLPTR  )
inlineconstexpr

nullptr constructor - initializes the TUniquePtr to null.

◆ TUniquePtr() [7/8]

template<typename T , typename Deleter >
TUniquePtr< T[], Deleter >::TUniquePtr ( TUniquePtr< T[], Deleter > &&  Other)
inline

Move constructor

◆ TUniquePtr() [8/8]

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

Constructor from rvalues of other (usually less qualified) types

◆ ~TUniquePtr()

template<typename T , typename Deleter >
UE_FORCEINLINE_HINT TUniquePtr< T[], Deleter >::~TUniquePtr ( )
inline

Destructor

Member Function Documentation

◆ Get()

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

Returns a pointer to the owned array without relinquishing ownership.

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

◆ GetDeleter() [1/2]

template<typename T , typename Deleter >
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 >
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 >
bool TUniquePtr< T[], Deleter >::IsValid ( ) const
inline

Tests if the TUniquePtr currently owns an array.

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

◆ operator bool()

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

operator bool

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

◆ operator!=() [1/2]

template<typename T , typename Deleter >
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 >
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 >
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 >
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 >
TUniquePtr & TUniquePtr< T[], Deleter >::operator= ( const TUniquePtr< T[], Deleter > &  )
delete

◆ operator=() [2/4]

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

Move assignment operator

◆ operator=() [3/4]

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

Assignment operator for rvalues of other (usually less qualified) types

◆ operator=() [4/4]

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

Nullptr assignment operator

◆ operator==() [1/2]

template<typename T , typename Deleter >
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 >
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 >
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 >
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.

◆ operator[]()

template<typename T , typename Deleter >
UE_FORCEINLINE_HINT T & TUniquePtr< T[], Deleter >::operator[] ( SIZE_T  Index) const
inline

Indexing operator

Returns
A reference to the object at the specified index by the TUniquePtr.

◆ Release()

template<typename T , typename Deleter >
T * TUniquePtr< T[], Deleter >::Release ( )
inline

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

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

◆ Reset() [1/2]

template<typename T , typename Deleter >
void TUniquePtr< T[], Deleter >::Reset ( TYPE_OF_NULLPTR  InPtr = nullptr)
inline

◆ Reset() [2/2]

template<typename T , typename Deleter >
template<typename U UE_REQUIRES>
void TUniquePtr< T[], Deleter >::Reset ( U *  InPtr)
inline

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

Parameters
InPtrA pointer to the array to take ownership of.

Friends And Related Symbol Documentation

◆ GetTypeHash

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

◆ TUniquePtr

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

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