| 
    sparrow 1.3.0
    
   | 
 
Smart pointer behaving like a copiable std::unique_ptr. More...
#include <memory.hpp>
Public Types | |
| using | self_type = cloning_ptr<T> | 
| using | pointer = typename internal_pointer::pointer | 
| using | element_type = typename internal_pointer::element_type | 
Public Member Functions | |
| constexpr | cloning_ptr () noexcept=default | 
| constexpr | cloning_ptr (std::nullptr_t) noexcept | 
| constexpr | cloning_ptr (pointer p) noexcept | 
| constexpr | ~cloning_ptr ()=default | 
| constexpr | cloning_ptr (const self_type &rhs) noexcept | 
| constexpr | cloning_ptr (self_type &&rhs) noexcept=default | 
| template<clonable U>  requires std::convertible_to<U*, T*>  | |
| constexpr | cloning_ptr (const cloning_ptr< U > &rhs) noexcept | 
| template<clonable U>  requires std::convertible_to<U*, T*>  | |
| constexpr | cloning_ptr (cloning_ptr< U > &&rhs) noexcept | 
| constexpr self_type & | operator= (const self_type &) noexcept | 
| constexpr self_type & | operator= (self_type &&) noexcept=default | 
| constexpr self_type & | operator= (std::nullptr_t) noexcept | 
| template<clonable U>  requires std::convertible_to<U*, T*>  | |
| constexpr self_type & | operator= (const cloning_ptr< U > &rhs) noexcept | 
| template<clonable U>  requires std::convertible_to<U*, T*>  | |
| constexpr self_type & | operator= (cloning_ptr< U > &&rhs) noexcept | 
| constexpr pointer | release () noexcept | 
| constexpr void | reset (pointer ptr=pointer()) noexcept | 
| void | swap (self_type &) noexcept | 
| constexpr pointer | get () const noexcept | 
| constexpr | operator bool () const noexcept | 
| constexpr std::add_lvalue_reference_t< T > | operator* () const noexcept(noexcept(*std::declval< pointer >())) | 
| constexpr pointer | operator-> () const noexcept | 
| template<clonable U>  requires std::convertible_to<U*, T*>  | |
| constexpr auto | operator= (const cloning_ptr< U > &rhs) noexcept -> self_type & | 
| template<clonable U>  requires std::convertible_to<U*, T*>  | |
| constexpr auto | operator= (cloning_ptr< U > &&rhs) noexcept -> self_type & | 
Smart pointer behaving like a copiable std::unique_ptr.
cloning_ptr owns and manages another object through a pointer, like std::unique_ptr. The difference with std::unique_ptr is that cloning_ptrcalls the clone method of the managed object upon copy. Therefore,cloning_ptris meant to be used with hierarchies of classes which provide aclone` method which returns a unique pointer.
| T | The type of the object managed by the cloning_ptr. It must satisfy the clonable concept.  | 
Definition at line 125 of file memory.hpp.
| using sparrow::cloning_ptr< T >::element_type = typename internal_pointer::element_type | 
Definition at line 133 of file memory.hpp.
| using sparrow::cloning_ptr< T >::pointer = typename internal_pointer::pointer | 
Definition at line 132 of file memory.hpp.
| using sparrow::cloning_ptr< T >::self_type = cloning_ptr<T> | 
Definition at line 131 of file memory.hpp.
      
  | 
  constexprdefaultnoexcept | 
      
  | 
  constexprnoexcept | 
Definition at line 333 of file memory.hpp.
      
  | 
  explicitconstexprnoexcept | 
Definition at line 339 of file memory.hpp.
      
  | 
  constexprdefault | 
      
  | 
  constexprnoexcept | 
      
  | 
  constexprdefaultnoexcept | 
      
  | 
  constexprnoexcept | 
      
  | 
  constexprnoexcept | 
      
  | 
  nodiscardconstexprnoexcept | 
      
  | 
  explicitconstexprnoexcept | 
      
  | 
  nodiscardconstexprnoexcept | 
      
  | 
  nodiscardconstexprnoexcept | 
      
  | 
  constexprnoexcept | 
      
  | 
  constexprnoexcept | 
Definition at line 392 of file memory.hpp.
      
  | 
  constexprnoexcept | 
      
  | 
  constexprnoexcept | 
Definition at line 383 of file memory.hpp.
      
  | 
  constexprnoexcept | 
Definition at line 367 of file memory.hpp.
      
  | 
  constexprdefaultnoexcept | 
      
  | 
  constexprnoexcept | 
      
  | 
  constexprnoexcept | 
Definition at line 399 of file memory.hpp.
      
  | 
  constexprnoexcept | 
      
  | 
  noexcept |