103 other.refCount =
nullptr;
159 other.refCount =
nullptr;
194 operator bool()
const {
195 return ptr !=
nullptr;
226 T* tempPtr = other.ptr;
227 int* tempRefCount = other.refCount;
229 other.ptr = this->
ptr;
233 this->refCount = tempRefCount;
251 if (newPtr ==
nullptr)
268 U* castedPtr =
dynamic_cast<U*
>(
ptr);
289 template<
typename T,
typename... Args>
Clase TSharedPointer para manejar la gestión de memoria compartida.
bool isNull() const
Comprobar si el puntero es nulo.
~TSharedPointer()
Destructor.
TSharedPointer< T > & operator=(TSharedPointer< T > &&other) noexcept
Operador de asignación de movimiento.
T * ptr
Puntero al objeto gestionado.
void swap(TSharedPointer< T > &other) noexcept
Método swap.
TSharedPointer< U > dynamic_pointer_cast() const
T * get() const
Obtener el puntero crudo.
TSharedPointer(const TSharedPointer< T > &other)
Constructor de copia.
int * refCount
Puntero al recuento de referencias.
void reset(T *newPtr=nullptr)
Libera el objeto actual y opcionalmente asigna un nuevo objeto.
TSharedPointer(TSharedPointer< T > &&other) noexcept
Constructor de movimiento.
T * operator->() const
Operador de acceso a miembros.
TSharedPointer()
Constructor por defecto.
T & operator*() const
Operador de desreferenciación.
TSharedPointer(T *rawPtr, int *existingRefCount)
Constructor desde un puntero crudo y un recuento de referencias.
TSharedPointer(T *rawPtr)
Constructor que toma un puntero crudo.
TSharedPointer< T > & operator=(const TSharedPointer< T > &other)
Operador de asignación de copia.
TSharedPointer< T > MakeShared(Args... args)
Función de utilidad para crear un TSharedPointer.