opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Friends | List of all members
osc::ClonePtr< T, Deleter > Class Template Referencefinal

#include <clone_ptr.h>

Public Types

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

Public Member Functions

constexpr ClonePtr () noexcept
 
constexpr ClonePtr (std::nullptr_t) noexcept
 
 ClonePtr (pointer p) noexcept
 
 ClonePtr (std::unique_ptr< element_type, deleter_type > p) noexcept
 
 ClonePtr (const ClonePtr &src)
 
 ClonePtr (ClonePtr &&) noexcept=default
 
template<typename U , typename E >
requires std::convertible_to<typename ClonePtr<U, E>::pointer, pointer>
 and (not std::is_array_v< U >) and std
 
 ~ClonePtr () noexcept=default
 
ClonePtroperator= (ClonePtr const &rhs)
 
ClonePtroperator= (ClonePtr &&) noexcept=default
 
ClonePtroperator= (std::unique_ptr< T, Deleter > &&ptr) noexcept
 
template<typename U , typename E >
requires (not std::is_array_v<U>)
and std::convertible_to< typename ClonePtr< U, E >::element_type, element_type > and std::is_assignable_v< Deleter &, E && > ClonePtroperator= (ClonePtr< U, E > &&rhs) noexcept
 
ClonePtroperator= (std::nullptr_t) noexcept
 
pointer release () noexcept
 
void reset (pointer ptr=pointer()) noexcept
 
void swap (ClonePtr &other) noexcept
 
pointer get () const noexcept
 
Deleterget_deleter () noexcept
 
const Deleterget_deleter () const noexcept
 
 operator bool () const noexcept
 
std::add_lvalue_reference_t< Toperator* () const noexcept(noexcept(*std::declval< pointer >()))
 
pointer operator-> () const noexcept
 

Friends

template<typename , typename >
class ClonePtr
 
void swap (ClonePtr &lhs, ClonePtr &rhs) noexcept
 
template<typename T2 , typename D2 >
bool operator== (const ClonePtr &lhs, const ClonePtr< T2, D2 > &rhs)
 
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & operator<< (std::basic_ostream< CharT, Traits > &os, const ClonePtr &p)
 

Member Typedef Documentation

◆ deleter_type

template<typename T , typename Deleter = std::default_delete<T>>
using osc::ClonePtr< T, Deleter >::deleter_type = Deleter

◆ element_type

template<typename T , typename Deleter = std::default_delete<T>>
using osc::ClonePtr< T, Deleter >::element_type = T

◆ pointer

template<typename T , typename Deleter = std::default_delete<T>>
using osc::ClonePtr< T, Deleter >::pointer = T*

Constructor & Destructor Documentation

◆ ClonePtr() [1/6]

template<typename T , typename Deleter = std::default_delete<T>>
constexpr osc::ClonePtr< T, Deleter >::ClonePtr ( )
inlineconstexprnoexcept

◆ ClonePtr() [2/6]

template<typename T , typename Deleter = std::default_delete<T>>
constexpr osc::ClonePtr< T, Deleter >::ClonePtr ( std::nullptr_t  )
inlineconstexprnoexcept

◆ ClonePtr() [3/6]

template<typename T , typename Deleter = std::default_delete<T>>
osc::ClonePtr< T, Deleter >::ClonePtr ( pointer  p)
inlineexplicitnoexcept

◆ ClonePtr() [4/6]

template<typename T , typename Deleter = std::default_delete<T>>
osc::ClonePtr< T, Deleter >::ClonePtr ( std::unique_ptr< element_type, deleter_type p)
inlineexplicitnoexcept

◆ ClonePtr() [5/6]

template<typename T , typename Deleter = std::default_delete<T>>
osc::ClonePtr< T, Deleter >::ClonePtr ( const ClonePtr< T, Deleter > &  src)
inline

◆ ClonePtr() [6/6]

template<typename T , typename Deleter = std::default_delete<T>>
osc::ClonePtr< T, Deleter >::ClonePtr ( ClonePtr< T, Deleter > &&  )
defaultnoexcept

◆ ~ClonePtr()

template<typename T , typename Deleter = std::default_delete<T>>
osc::ClonePtr< T, Deleter >::~ClonePtr ( )
defaultnoexcept

Member Function Documentation

◆ and()

template<typename T , typename Deleter = std::default_delete<T>>
template<typename U , typename E >
requires std::convertible_to<typename ClonePtr<U, E>::pointer, pointer>
osc::ClonePtr< T, Deleter >::and ( not std::is_array_v< U )
inline

◆ get()

template<typename T , typename Deleter = std::default_delete<T>>
pointer osc::ClonePtr< T, Deleter >::get ( ) const
inlinenoexcept

◆ get_deleter() [1/2]

template<typename T , typename Deleter = std::default_delete<T>>
const Deleter & osc::ClonePtr< T, Deleter >::get_deleter ( ) const
inlinenoexcept

◆ get_deleter() [2/2]

template<typename T , typename Deleter = std::default_delete<T>>
Deleter & osc::ClonePtr< T, Deleter >::get_deleter ( )
inlinenoexcept

◆ operator bool()

template<typename T , typename Deleter = std::default_delete<T>>
osc::ClonePtr< T, Deleter >::operator bool ( ) const
inlineexplicitnoexcept

◆ operator*()

template<typename T , typename Deleter = std::default_delete<T>>
std::add_lvalue_reference_t< T > osc::ClonePtr< T, Deleter >::operator* ( ) const
inlinenoexcept

◆ operator->()

template<typename T , typename Deleter = std::default_delete<T>>
pointer osc::ClonePtr< T, Deleter >::operator-> ( ) const
inlinenoexcept

◆ operator=() [1/5]

template<typename T , typename Deleter = std::default_delete<T>>
ClonePtr & osc::ClonePtr< T, Deleter >::operator= ( ClonePtr< T, Deleter > &&  )
defaultnoexcept

◆ operator=() [2/5]

template<typename T , typename Deleter = std::default_delete<T>>
ClonePtr & osc::ClonePtr< T, Deleter >::operator= ( ClonePtr< T, Deleter > const rhs)
inline

◆ operator=() [3/5]

template<typename T , typename Deleter = std::default_delete<T>>
template<typename U , typename E >
requires (not std::is_array_v<U>)
and std::convertible_to< typename ClonePtr< U, E >::element_type, element_type > and std::is_assignable_v< Deleter &, E && > ClonePtr & osc::ClonePtr< T, Deleter >::operator= ( ClonePtr< U, E > &&  rhs)
inlinenoexcept

◆ operator=() [4/5]

template<typename T , typename Deleter = std::default_delete<T>>
ClonePtr & osc::ClonePtr< T, Deleter >::operator= ( std::nullptr_t  )
inlinenoexcept

◆ operator=() [5/5]

template<typename T , typename Deleter = std::default_delete<T>>
ClonePtr & osc::ClonePtr< T, Deleter >::operator= ( std::unique_ptr< T, Deleter > &&  ptr)
inlinenoexcept

◆ release()

template<typename T , typename Deleter = std::default_delete<T>>
pointer osc::ClonePtr< T, Deleter >::release ( )
inlinenoexcept

◆ reset()

template<typename T , typename Deleter = std::default_delete<T>>
void osc::ClonePtr< T, Deleter >::reset ( pointer  ptr = pointer())
inlinenoexcept

◆ swap()

template<typename T , typename Deleter = std::default_delete<T>>
void osc::ClonePtr< T, Deleter >::swap ( ClonePtr< T, Deleter > &  other)
inlinenoexcept

Friends And Related Symbol Documentation

◆ ClonePtr

template<typename T , typename Deleter = std::default_delete<T>>
template<typename , typename >
friend class ClonePtr
friend

◆ operator<<

template<typename T , typename Deleter = std::default_delete<T>>
template<typename CharT , typename Traits >
std::basic_ostream< CharT, Traits > & operator<< ( std::basic_ostream< CharT, Traits > &  os,
const ClonePtr< T, Deleter > &  p 
)
friend

◆ operator==

template<typename T , typename Deleter = std::default_delete<T>>
template<typename T2 , typename D2 >
bool operator== ( const ClonePtr< T, Deleter > &  lhs,
const ClonePtr< T2, D2 > &  rhs 
)
friend

◆ swap

template<typename T , typename Deleter = std::default_delete<T>>
void swap ( ClonePtr< T, Deleter > &  lhs,
ClonePtr< T, Deleter > &  rhs 
)
friend

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