ROOT  6.06/09
Reference Guide
Public Member Functions | List of all members
ROOT::Internal::TCoopPtrTypeErased< POINTEE > Class Template Reference

template<class POINTEE>
class ROOT::Internal::TCoopPtrTypeErased< POINTEE >

Type-specific derived implementation of a TCoopPtrTypeErasedBase, to invoke the destructor of the TCoopPtr<POINTEE> upon destruction of the TCoopPtrTypeErased.

"Translates" from the abstract interface (TCoopPtrTypeErasedBase) to the specific implementation TCoopPtr<POINTEE>.

Definition at line 163 of file TCoopPtr.h.

Public Member Functions

 TCoopPtrTypeErased (const TCoopPtr< POINTEE > &ptr)
 
 ~TCoopPtrTypeErased () final=default
 
- Public Member Functions inherited from ROOT::TCoopPtr< POINTEE >
 TCoopPtr ()=default
 
 TCoopPtr (const TCoopPtr &other)=default
 Creates a synchronized TCoopPtr: once any of them call Delete(), all others will "contain" a nullptr. More...
 
 TCoopPtr (TCoopPtr &&other)=default
 
 TCoopPtr (Pointer_t ptr)
 Initialize from a raw pointer. More...
 
template<class SELF = TCoopPtr, typename std::enable_if< std::is_move_constructible< typename SELF::Pointee_t >::value >::type * = nullptr>
 TCoopPtr (POINTEE &&obj)
 Create a TCoopPtr from an object. More...
 
 TCoopPtr (std::unique_ptr< POINTEE > &&ptr)
 Initialize from a unique_ptr; takes ownership. More...
 
template<class DERIVED , typename std::enable_if< std::is_base_of< POINTEE, DERIVED >{}>::type * = nullptr>
 TCoopPtr (const TCoopPtr< DERIVED > &derived)
 Conversion from a pointer to derived to a pointer to base. More...
 
Pointer_t Get () const
 Get the raw pointer. More...
 
const SharedPtr_tGetShared () const
 
POINTEE * Delete () const
 Delete the object pointed to. More...
 
Pointer_t operator-> () const
 Access the object pointed to. More...
 
POINTEE & operator* () const
 Dereference the object pointed to. More...
 
 operator bool () const
 Returns true if the pointer is non-null. More...
 
- Public Member Functions inherited from ROOT::Internal::TCoopPtrTypeErasedBase
virtual ~TCoopPtrTypeErasedBase ()
 

Additional Inherited Members

- Public Types inherited from ROOT::TCoopPtr< POINTEE >
using Pointee_t = std::remove_reference_t< POINTEE >
 The type pointed to. More...
 
using Pointer_t = std::add_pointer_t< Pointee_t >
 The primitive pointer type. More...
 
using SharedPtr_t = std::shared_ptr< void * >
 The underlying std::shared_ptr. More...
 

#include <ROOT/TCoopPtr.h>

+ Inheritance diagram for ROOT::Internal::TCoopPtrTypeErased< POINTEE >:
+ Collaboration diagram for ROOT::Internal::TCoopPtrTypeErased< POINTEE >:

Constructor & Destructor Documentation

template<class POINTEE >
ROOT::Internal::TCoopPtrTypeErased< POINTEE >::TCoopPtrTypeErased ( const TCoopPtr< POINTEE > &  ptr)
inline

Definition at line 165 of file TCoopPtr.h.

template<class POINTEE >
ROOT::Internal::TCoopPtrTypeErased< POINTEE >::~TCoopPtrTypeErased ( )
finaldefault

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