RISA
glados::base_ptr< T, CopyPolicy, Ptr > Class Template Reference

#include <Memory.h>

Inheritance diagram for glados::base_ptr< T, CopyPolicy, Ptr >:
Collaboration diagram for glados::base_ptr< T, CopyPolicy, Ptr >:

Public Types

using pointer = typename Ptr::pointer
 
using element_type = typename Ptr::element_type
 
using deleter_type = typename Ptr::deleter_type
 
using underlying_type = Ptr
 

Public Member Functions

constexpr base_ptr () noexcept
 
constexpr base_ptr (std::nullptr_t p) noexcept
 
 base_ptr (Ptr ptr) noexcept
 
 base_ptr (base_ptr &&other) noexcept
 
 ~base_ptr ()=default
 
auto operator= (base_ptr &&r) noexcept-> base_ptr &
 
auto release () noexcept-> pointer
 
auto reset (pointer ptr=pointer()) noexcept-> void
 
template<class U >
auto reset (U) noexcept-> void=delete
 
auto reset (std::nullptr_t p) noexcept-> void
 
auto swap (base_ptr &other) noexcept-> void
 
auto get () const noexcept-> pointer
 
auto get_deleter () noexcept-> deleter_type
 
auto get_deleter () const noexcept-> const deleter_type
 
 operator bool () const noexcept
 
auto operator[] (std::size_t i) const -> element_type &
 
const Ptr & get_underlying () const noexcept
 

Protected Member Functions

template<class Dest , class Src , class... Args>
auto copy (Dest &dest, const Src &src, Args...args) -> void
 

Protected Attributes

Ptr ptr_
 

Private Member Functions

 base_ptr (const base_ptr &)=delete
 
auto operator= (const base_ptr &) -> base_ptr &=delete
 

Detailed Description

template<class T, class CopyPolicy, class Ptr>
class glados::base_ptr< T, CopyPolicy, Ptr >

Definition at line 40 of file Memory.h.

Member Typedef Documentation

template<class T, class CopyPolicy, class Ptr>
using glados::base_ptr< T, CopyPolicy, Ptr >::deleter_type = typename Ptr::deleter_type

Definition at line 45 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
using glados::base_ptr< T, CopyPolicy, Ptr >::element_type = typename Ptr::element_type

Definition at line 44 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
using glados::base_ptr< T, CopyPolicy, Ptr >::pointer = typename Ptr::pointer

Definition at line 43 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
using glados::base_ptr< T, CopyPolicy, Ptr >::underlying_type = Ptr

Definition at line 46 of file Memory.h.

Constructor & Destructor Documentation

template<class T, class CopyPolicy, class Ptr>
constexpr glados::base_ptr< T, CopyPolicy, Ptr >::base_ptr ( )
inlinenoexcept

Definition at line 49 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
constexpr glados::base_ptr< T, CopyPolicy, Ptr >::base_ptr ( std::nullptr_t  p)
inlinenoexcept

Definition at line 53 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
glados::base_ptr< T, CopyPolicy, Ptr >::base_ptr ( Ptr  ptr)
inlinenoexcept

Definition at line 57 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
glados::base_ptr< T, CopyPolicy, Ptr >::base_ptr ( base_ptr< T, CopyPolicy, Ptr > &&  other)
inlinenoexcept

Definition at line 61 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
glados::base_ptr< T, CopyPolicy, Ptr >::~base_ptr ( )
default
template<class T, class CopyPolicy, class Ptr>
glados::base_ptr< T, CopyPolicy, Ptr >::base_ptr ( const base_ptr< T, CopyPolicy, Ptr > &  )
privatedelete

Member Function Documentation

template<class T, class CopyPolicy, class Ptr>
template<class Dest , class Src , class... Args>
auto glados::base_ptr< T, CopyPolicy, Ptr >::copy ( Dest &  dest,
const Src &  src,
Args...  args 
) -> void
inlineprotected

Definition at line 89 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::get ( ) const -> pointer
inlinenoexcept

Definition at line 78 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::get_deleter ( ) -> deleter_type
inlinenoexcept

Definition at line 79 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::get_deleter ( ) const -> const deleter_type
inlinenoexcept

Definition at line 80 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
const Ptr& glados::base_ptr< T, CopyPolicy, Ptr >::get_underlying ( ) const
inlinenoexcept

Definition at line 85 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
glados::base_ptr< T, CopyPolicy, Ptr >::operator bool ( ) const
inlineexplicitnoexcept

Definition at line 81 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::operator= ( base_ptr< T, CopyPolicy, Ptr > &&  r) -> base_ptr&
inlinenoexcept

Definition at line 67 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::operator= ( const base_ptr< T, CopyPolicy, Ptr > &  ) -> base_ptr &=delete
privatedelete
template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::operator[] ( std::size_t  i) const -> element_type&
inline

Definition at line 82 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::release ( ) -> pointer
inlinenoexcept

Definition at line 73 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::reset ( pointer  ptr = pointer()) -> void
inlinenoexcept

Definition at line 74 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
template<class U >
auto glados::base_ptr< T, CopyPolicy, Ptr >::reset ( ) -> void=delete
deletenoexcept
template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::reset ( std::nullptr_t  p) -> void
inlinenoexcept

Definition at line 76 of file Memory.h.

template<class T, class CopyPolicy, class Ptr>
auto glados::base_ptr< T, CopyPolicy, Ptr >::swap ( base_ptr< T, CopyPolicy, Ptr > &  other) -> void
inlinenoexcept

Definition at line 77 of file Memory.h.

Member Data Documentation

template<class T, class CopyPolicy, class Ptr>
Ptr glados::base_ptr< T, CopyPolicy, Ptr >::ptr_
protected

Definition at line 99 of file Memory.h.


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