tenno 0.1.0
Loading...
Searching...
No Matches
tenno::unique_ptr< T, Deleter > Class Template Reference

A shared pointer. More...

#include <memory.hpp>

Public Types

using pointer = T *
 
using element_type = T
 
using deleter_type = Deleter
 

Public Member Functions

constexpr unique_ptr ()
 Construct a new empty unique_ptr object.
 
constexpr unique_ptr (T *ptr, Deleter deleter=tenno::default_delete< T >())
 Construct a new unique_ptr object with the given pointer.
 
constexpr unique_ptr (const unique_ptr &other)=delete
 
constexpr unique_ptr (unique_ptr &&other) noexcept
 Construct a new unique_ptr object by moving the other object.
 
 ~unique_ptr ()
 Destroy the unique_ptr object.
 
constexpr unique_ptroperator= (const unique_ptr &other)=delete
 
constexpr unique_ptroperator= (unique_ptr &&other) noexcept
 Move the other unique_ptr object into this one.
 
constexpr pointer release () noexcept
 Release the pointer from the unique_ptr object.
 
constexpr void reset (pointer ptr=pointer()) noexcept
 Reset the pointer to the given value.
 
void swap (unique_ptr &other) noexcept
 Swap the unique_ptr object with the other one.
 
constexpr pointer get () const noexcept
 Get the pointer to the object.
 
deleter_typeget_deleter ()
 Get the deleter of the object.
 
 operator bool () const noexcept
 Boolean conversion operator.
 
T & operator* () noexcept
 Dereference operator.
 
T & operator-> () noexcept
 Dereference operator.
 

Detailed Description

template<class T, class Deleter = tenno::default_delete<T>>
class tenno::unique_ptr< T, Deleter >

A shared pointer.

Template Parameters
TThe type of the object to point to

Definition at line 846 of file memory.hpp.

Member Typedef Documentation

◆ deleter_type

template<class T , class Deleter = tenno::default_delete<T>>
using tenno::unique_ptr< T, Deleter >::deleter_type = Deleter

Definition at line 851 of file memory.hpp.

◆ element_type

template<class T , class Deleter = tenno::default_delete<T>>
using tenno::unique_ptr< T, Deleter >::element_type = T

Definition at line 850 of file memory.hpp.

◆ pointer

template<class T , class Deleter = tenno::default_delete<T>>
using tenno::unique_ptr< T, Deleter >::pointer = T *

Definition at line 849 of file memory.hpp.

Constructor & Destructor Documentation

◆ unique_ptr() [1/4]

template<class T , class Deleter = tenno::default_delete<T>>
tenno::unique_ptr< T, Deleter >::unique_ptr ( )
inlineconstexpr

Construct a new empty unique_ptr object.

Definition at line 856 of file memory.hpp.

◆ unique_ptr() [2/4]

template<class T , class Deleter = tenno::default_delete<T>>
tenno::unique_ptr< T, Deleter >::unique_ptr ( T * ptr,
Deleter deleter = tenno::default_delete<T>() )
inlineconstexpr

Construct a new unique_ptr object with the given pointer.

Parameters
ptrThe pointer to the object

Definition at line 865 of file memory.hpp.

◆ unique_ptr() [3/4]

template<class T , class Deleter = tenno::default_delete<T>>
tenno::unique_ptr< T, Deleter >::unique_ptr ( const unique_ptr< T, Deleter > & other)
constexprdelete

◆ unique_ptr() [4/4]

template<class T , class Deleter = tenno::default_delete<T>>
tenno::unique_ptr< T, Deleter >::unique_ptr ( unique_ptr< T, Deleter > && other)
inlineconstexprnoexcept

Construct a new unique_ptr object by moving the other object.

Parameters
otherThe other unique_ptr object to move

Definition at line 876 of file memory.hpp.

◆ ~unique_ptr()

template<class T , class Deleter = tenno::default_delete<T>>
tenno::unique_ptr< T, Deleter >::~unique_ptr ( )
inline

Destroy the unique_ptr object.

Definition at line 888 of file memory.hpp.

Member Function Documentation

◆ get()

template<class T , class Deleter = tenno::default_delete<T>>
pointer tenno::unique_ptr< T, Deleter >::get ( ) const
inlineconstexprnoexcept

Get the pointer to the object.

Returns
pointer The pointer to the object

Definition at line 955 of file memory.hpp.

◆ get_deleter()

template<class T , class Deleter = tenno::default_delete<T>>
deleter_type & tenno::unique_ptr< T, Deleter >::get_deleter ( )
inline

Get the deleter of the object.

Returns
deleter_type The deleter of the object

Definition at line 965 of file memory.hpp.

◆ operator bool()

template<class T , class Deleter = tenno::default_delete<T>>
tenno::unique_ptr< T, Deleter >::operator bool ( ) const
inlineexplicitnoexcept

Boolean conversion operator.

Returns
true if the pointer is not null, false otherwise

Definition at line 974 of file memory.hpp.

◆ operator*()

template<class T , class Deleter = tenno::default_delete<T>>
T & tenno::unique_ptr< T, Deleter >::operator* ( )
inlinenoexcept

Dereference operator.

Returns
T& The reference to the object

Definition at line 983 of file memory.hpp.

◆ operator->()

template<class T , class Deleter = tenno::default_delete<T>>
T & tenno::unique_ptr< T, Deleter >::operator-> ( )
inlinenoexcept

Dereference operator.

Returns
T& The reference to the object

Definition at line 992 of file memory.hpp.

◆ operator=() [1/2]

template<class T , class Deleter = tenno::default_delete<T>>
unique_ptr & tenno::unique_ptr< T, Deleter >::operator= ( const unique_ptr< T, Deleter > & other)
constexprdelete

◆ operator=() [2/2]

template<class T , class Deleter = tenno::default_delete<T>>
unique_ptr & tenno::unique_ptr< T, Deleter >::operator= ( unique_ptr< T, Deleter > && other)
inlineconstexprnoexcept

Move the other unique_ptr object into this one.

Parameters
otherThe other unique_ptr object to move
Returns
unique_ptr& The reference to this object

Definition at line 901 of file memory.hpp.

◆ release()

template<class T , class Deleter = tenno::default_delete<T>>
pointer tenno::unique_ptr< T, Deleter >::release ( )
inlineconstexprnoexcept

Release the pointer from the unique_ptr object.

Returns
pointer The pointer to the object

Definition at line 913 of file memory.hpp.

◆ reset()

template<class T , class Deleter = tenno::default_delete<T>>
void tenno::unique_ptr< T, Deleter >::reset ( pointer ptr = pointer())
inlineconstexprnoexcept

Reset the pointer to the given value.

Parameters
ptrThe pointer to the object

Definition at line 928 of file memory.hpp.

◆ swap()

template<class T , class Deleter = tenno::default_delete<T>>
void tenno::unique_ptr< T, Deleter >::swap ( unique_ptr< T, Deleter > & other)
inlinenoexcept

Swap the unique_ptr object with the other one.

Parameters
otherThe other unique_ptr object to swap with

Definition at line 940 of file memory.hpp.


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