DiscordCoreAPI
A Discord bot library written in C++, with custom asynchronous coroutines.
Loading...
Searching...
No Matches
discord_core_api::unique_ptr< value_type, deleter > Class Template Reference

A smart pointer class that provides unique ownership semantics. More...

#include <UniquePtr.hpp>

Inherits std::default_delete< value_type >.

Public Member Functions

pointer get () const
 Gets the managed raw pointer. More...
 
 operator bool () const
 Conversion operator to check if the pointer is valid. More...
 
reference operator* () const
 Dereference operator. More...
 
pointer operator-> () const
 Member access operator. More...
 
template<jsonifier::concepts::unique_ptr_t value_type_new>
unique_ptroperator= (value_type_new &&other)
 Move assignment operator for related pointers. More...
 
template<jsonifier::concepts::pointer_t value_type_new>
unique_ptroperator= (value_type_new newPtr)
 Move assignment operator for raw pointer. More...
 
pointer release ()
 Releases the managed pointer. More...
 
void reset (pointer newPtr=nullptr)
 Resets the managed pointer and invokes the deleter. More...
 
void swap (unique_ptr &other)
 Swaps the contents of two unique_ptr objects. More...
 
 unique_ptr ()
 Default constructor.
 
template<jsonifier::concepts::unique_ptr_t value_type_new>
 unique_ptr (value_type_new &&other)
 Move constructor for related pointers. More...
 
template<jsonifier::concepts::pointer_t value_type_new>
 unique_ptr (value_type_new newPtr)
 Constructor from a raw pointer. More...
 
 ~unique_ptr ()
 Destructor that releases the managed object.
 

Constructor & Destructor Documentation

◆ unique_ptr() [1/2]

template<typename value_type , typename deleter = std::default_delete<value_type>>
template<jsonifier::concepts::unique_ptr_t value_type_new>
discord_core_api::unique_ptr< value_type, deleter >::unique_ptr ( value_type_new &&  other)
inline
Parameters
otherthe other unique_ptr to move from.

Definition at line 75 of file UniquePtr.hpp.

◆ unique_ptr() [2/2]

template<typename value_type , typename deleter = std::default_delete<value_type>>
template<jsonifier::concepts::pointer_t value_type_new>
discord_core_api::unique_ptr< value_type, deleter >::unique_ptr ( value_type_new  newPtr)
inline
Parameters
newPtrthe new ptr to manage.

Definition at line 95 of file UniquePtr.hpp.

Member Function Documentation

◆ commit()

template<typename value_type , typename deleter = std::default_delete<value_type>>
void discord_core_api::unique_ptr< value_type, deleter >::commit ( pointer  other)
inlineprotected
Parameters
otherthe new pointer value to commit.

Definition at line 162 of file UniquePtr.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get()

template<typename value_type , typename deleter = std::default_delete<value_type>>
pointer discord_core_api::unique_ptr< value_type, deleter >::get ( ) const
inline
Returns
the managed raw pointer.

Definition at line 101 of file UniquePtr.hpp.

◆ getDeleter()

template<typename value_type , typename deleter = std::default_delete<value_type>>
deleter_type & discord_core_api::unique_ptr< value_type, deleter >::getDeleter ( )
inlineprotected
Returns
the associated deleter.

Definition at line 169 of file UniquePtr.hpp.

Here is the caller graph for this function:

◆ operator bool()

template<typename value_type , typename deleter = std::default_delete<value_type>>
discord_core_api::unique_ptr< value_type, deleter >::operator bool ( ) const
inline
Returns
true if the pointer is valid, false otherwise.

Definition at line 107 of file UniquePtr.hpp.

◆ operator*()

template<typename value_type , typename deleter = std::default_delete<value_type>>
reference discord_core_api::unique_ptr< value_type, deleter >::operator* ( ) const
inline
Returns
a reference to the managed object.

Definition at line 113 of file UniquePtr.hpp.

◆ operator->()

template<typename value_type , typename deleter = std::default_delete<value_type>>
pointer discord_core_api::unique_ptr< value_type, deleter >::operator-> ( ) const
inline
Returns
the managed raw pointer.

Definition at line 122 of file UniquePtr.hpp.

◆ operator=() [1/2]

template<typename value_type , typename deleter = std::default_delete<value_type>>
template<jsonifier::concepts::unique_ptr_t value_type_new>
unique_ptr & discord_core_api::unique_ptr< value_type, deleter >::operator= ( value_type_new &&  other)
inline
Parameters
otherthe other unique_ptr to move from.
Returns
unique_ptr the new managed object inside a unique_ptr.

Definition at line 60 of file UniquePtr.hpp.

Here is the call graph for this function:

◆ operator=() [2/2]

template<typename value_type , typename deleter = std::default_delete<value_type>>
template<jsonifier::concepts::pointer_t value_type_new>
unique_ptr & discord_core_api::unique_ptr< value_type, deleter >::operator= ( value_type_new  newPtr)
inline
Parameters
newPtrthe new ptr to manage.
Returns
unique_ptr the new managed object inside a unique_ptr.

Definition at line 82 of file UniquePtr.hpp.

Here is the call graph for this function:

◆ release()

template<typename value_type , typename deleter = std::default_delete<value_type>>
pointer discord_core_api::unique_ptr< value_type, deleter >::release ( )
inline
Returns
the released raw pointer.

Definition at line 131 of file UniquePtr.hpp.

◆ reset()

template<typename value_type , typename deleter = std::default_delete<value_type>>
void discord_core_api::unique_ptr< value_type, deleter >::reset ( pointer  newPtr = nullptr)
inline
Parameters
newPtrthe new raw pointer to manage.

Definition at line 139 of file UniquePtr.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ swap()

template<typename value_type , typename deleter = std::default_delete<value_type>>
void discord_core_api::unique_ptr< value_type, deleter >::swap ( unique_ptr< value_type, deleter > &  other)
inline
Parameters
otherthe other unique_ptr to swap with.

Definition at line 148 of file UniquePtr.hpp.


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