SleakEngine 1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
Sleak::ObjectPtr< T > Class Template Reference

#include <ObjectPtr.hpp>

Inheritance diagram for Sleak::ObjectPtr< T >:

Public Member Functions

 ObjectPtr () noexcept
template<typename... Args>
 ObjectPtr (Args &&... args)
 ObjectPtr (const ObjectPtr &)=delete
 ObjectPtr (ObjectPtr &&other) noexcept
template<typename U, typename = std::enable_if_t<std::is_base_of_v<T, U>>>
 ObjectPtr (ObjectPtr< U > &&other) noexcept
 ObjectPtr (T *p) noexcept
 ~ObjectPtr ()
bool operator!= (const ObjectPtr &other) const noexcept
bool operator< (const ObjectPtr &other) const noexcept
bool operator<= (const ObjectPtr &other) const noexcept
ObjectPtroperator= (const ObjectPtr &)=delete
ObjectPtroperator= (ObjectPtr &&other) noexcept
bool operator== (const ObjectPtr &other) const noexcept
bool operator> (const ObjectPtr &other) const noexcept
bool operator>= (const ObjectPtr &other) const noexcept
T * release () noexcept
void reset (T *newPtr=nullptr) override
Public Member Functions inherited from Sleak::SmartPointer< T >
 SmartPointer (const SmartPointer &)=delete
virtual ~SmartPointer ()
T * get () const
 Raw pointer access; throws NullPointerException if unset.
virtual bool IsValid () const
 True if the pointer is non-null.
 operator bool () const
T & operator* () const
T * operator-> () const
SmartPointeroperator= (const SmartPointer &)=delete

Additional Inherited Members

Protected Member Functions inherited from Sleak::SmartPointer< T >
 SmartPointer (T *p=nullptr)
Protected Attributes inherited from Sleak::SmartPointer< T >
T * ptr

Detailed Description

template<typename T>
class Sleak::ObjectPtr< T >

Move-only, exclusive-ownership smart pointer (unique_ptr equivalent). Copying is disabled; transfer ownership with std::move.

Definition at line 14 of file ObjectPtr.hpp.

Constructor & Destructor Documentation

◆ ObjectPtr() [1/6]

template<typename T>
Sleak::ObjectPtr< T >::ObjectPtr ( )
inlinenoexcept

Definition at line 17 of file ObjectPtr.hpp.

◆ ObjectPtr() [2/6]

template<typename T>
Sleak::ObjectPtr< T >::ObjectPtr ( T * p)
inlineexplicitnoexcept

Definition at line 20 of file ObjectPtr.hpp.

◆ ObjectPtr() [3/6]

template<typename T>
template<typename... Args>
Sleak::ObjectPtr< T >::ObjectPtr ( Args &&... args)
inlineexplicit

Definition at line 24 of file ObjectPtr.hpp.

◆ ObjectPtr() [4/6]

template<typename T>
Sleak::ObjectPtr< T >::ObjectPtr ( ObjectPtr< T > && other)
inlinenoexcept

Definition at line 27 of file ObjectPtr.hpp.

◆ ObjectPtr() [5/6]

template<typename T>
template<typename U, typename = std::enable_if_t<std::is_base_of_v<T, U>>>
Sleak::ObjectPtr< T >::ObjectPtr ( ObjectPtr< U > && other)
inlinenoexcept

Definition at line 39 of file ObjectPtr.hpp.

◆ ~ObjectPtr()

template<typename T>
Sleak::ObjectPtr< T >::~ObjectPtr ( )
inline

Definition at line 43 of file ObjectPtr.hpp.

◆ ObjectPtr() [6/6]

template<typename T>
Sleak::ObjectPtr< T >::ObjectPtr ( const ObjectPtr< T > & )
delete

Member Function Documentation

◆ operator!=()

template<typename T>
bool Sleak::ObjectPtr< T >::operator!= ( const ObjectPtr< T > & other) const
inlinenoexcept

Definition at line 63 of file ObjectPtr.hpp.

◆ operator<()

template<typename T>
bool Sleak::ObjectPtr< T >::operator< ( const ObjectPtr< T > & other) const
inlinenoexcept

Definition at line 64 of file ObjectPtr.hpp.

◆ operator<=()

template<typename T>
bool Sleak::ObjectPtr< T >::operator<= ( const ObjectPtr< T > & other) const
inlinenoexcept

Definition at line 65 of file ObjectPtr.hpp.

◆ operator=() [1/2]

template<typename T>
ObjectPtr & Sleak::ObjectPtr< T >::operator= ( const ObjectPtr< T > & )
delete

◆ operator=() [2/2]

template<typename T>
ObjectPtr & Sleak::ObjectPtr< T >::operator= ( ObjectPtr< T > && other)
inlinenoexcept

Definition at line 30 of file ObjectPtr.hpp.

◆ operator==()

template<typename T>
bool Sleak::ObjectPtr< T >::operator== ( const ObjectPtr< T > & other) const
inlinenoexcept

Definition at line 62 of file ObjectPtr.hpp.

◆ operator>()

template<typename T>
bool Sleak::ObjectPtr< T >::operator> ( const ObjectPtr< T > & other) const
inlinenoexcept

Definition at line 66 of file ObjectPtr.hpp.

◆ operator>=()

template<typename T>
bool Sleak::ObjectPtr< T >::operator>= ( const ObjectPtr< T > & other) const
inlinenoexcept

Definition at line 67 of file ObjectPtr.hpp.

◆ release()

template<typename T>
T * Sleak::ObjectPtr< T >::release ( )
inlinenoexcept

Definition at line 55 of file ObjectPtr.hpp.

◆ reset()

template<typename T>
void Sleak::ObjectPtr< T >::reset ( T * newPtr = nullptr)
inlineoverridevirtual

Implements Sleak::SmartPointer< T >.

Definition at line 46 of file ObjectPtr.hpp.