VTK  9.7.1
Public Member Functions | Friends | List of all members
vtkNew< T > Class Template Reference

Allocate and hold a VTK object. More...

#include <vtkGarbageCollector.h>

Public Member Functions

 vtkNew ()
 Create a new T on construction. More...
 
T * operator-> () const noexcept
 Enable pointer-like dereference syntax. More...
 
T & operator* () const noexcept
 Dereference the pointer and return a reference to the contained object. More...
 
vtkNew< T > & operator= (vtkNew< T > &&other) noexcept
 Move assignment operator. More...
 
 vtkNew (vtkNew &&o) noexcept
 Move the object into the constructed vtkNew wrapper, stealing its reference. More...
 
template<typename U >
 vtkNew (vtkNew< U > &&o) noexcept
 Move the object into the constructed vtkNew wrapper, stealing its reference. More...
 
 ~vtkNew ()
 Deletes reference to instance of T. More...
 
void Reset ()
 Deletes reference to instance of T. More...
 
T * GetPointer () const noexcept
 Get a raw pointer to the contained object. More...
 
T * Get () const noexcept
 Get a raw pointer to the contained object. More...
 
 operator T * () const noexcept
 Get a raw pointer to the contained object. More...
 

Friends

template<typename U >
class vtkNew
 
template<typename U >
class vtkSmartPointer
 
template<typename U >
class vtkWeakPointer
 
void vtkGarbageCollectorReport (vtkGarbageCollector *collector, vtkNew< T > &ptr, const char *desc)
 Function to report a reference held by a vtkNew to a collector. More...
 

Detailed Description

template<class T>
class vtkNew< T >

Allocate and hold a VTK object.

vtkNew is a class template that on construction allocates and initializes an instance of its template argument using T::New(). It assumes ownership of one reference during its lifetime, and calls T->Delete() on destruction.

Automatic casting to raw pointer is available for convenience, but users of this method should ensure that they do not return this pointer if the vtkNew will go out of scope without incrementing its reference count.

vtkNew is a drop in replacement for vtkSmartPointer, for example,

See also
vtkSmartPointer vtkWeakPointer vtkWeakPtr
Examples:
vtkNew (Examples)
Tests:
vtkNew (Tests)

Definition at line 80 of file vtkGarbageCollector.h.

Constructor & Destructor Documentation

template<class T>
vtkNew< T >::vtkNew ( )
inline

Create a new T on construction.

Definition at line 91 of file vtkNew.h.

template<class T>
vtkNew< T >::vtkNew ( vtkNew< T > &&  o)
inlinenoexcept

Move the object into the constructed vtkNew wrapper, stealing its reference.

The argument is reset to nullptr.

Definition at line 102 of file vtkNew.h.

template<class T>
template<typename U >
vtkNew< T >::vtkNew ( vtkNew< U > &&  o)
inlinenoexcept

Move the object into the constructed vtkNew wrapper, stealing its reference.

The argument is reset to nullptr.

Definition at line 109 of file vtkNew.h.

template<class T>
vtkNew< T >::~vtkNew ( )
inline

Deletes reference to instance of T.

Definition at line 122 of file vtkNew.h.

Member Function Documentation

template<class T>
void vtkNew< T >::Reset ( )
inline

Deletes reference to instance of T.

Definition at line 124 of file vtkNew.h.

template<class T>
T* vtkNew< T >::operator-> ( ) const
inlinenoexcept

Enable pointer-like dereference syntax.

Returns a pointer to the contained object.

Definition at line 139 of file vtkNew.h.

template<class T>
T* vtkNew< T >::GetPointer ( ) const
inlinenoexcept

Get a raw pointer to the contained object.

When using this function be careful that the reference count does not drop to 0 when using the pointer returned. This will happen when the vtkNew object goes out of scope for example.

Definition at line 148 of file vtkNew.h.

template<class T>
T* vtkNew< T >::Get ( ) const
inlinenoexcept

Get a raw pointer to the contained object.

When using this function be careful that the reference count does not drop to 0 when using the pointer returned. This will happen when the vtkNew object goes out of scope for example.

Definition at line 149 of file vtkNew.h.

template<class T>
vtkNew< T >::operator T * ( ) const
inlinenoexcept

Get a raw pointer to the contained object.

When using this function be careful that the reference count does not drop to 0 when using the pointer returned. This will happen when the vtkNew object goes out of scope for example.

Definition at line 150 of file vtkNew.h.

template<class T>
T& vtkNew< T >::operator* ( ) const
inlinenoexcept

Dereference the pointer and return a reference to the contained object.

When using this function be careful that the reference count does not drop to 0 when using the pointer returned. This will happen when the vtkNew object goes out of scope for example.

Definition at line 158 of file vtkNew.h.

template<class T>
vtkNew<T>& vtkNew< T >::operator= ( vtkNew< T > &&  other)
inlinenoexcept

Move assignment operator.

Definition at line 163 of file vtkNew.h.

Friends And Related Function Documentation

template<class T>
template<typename U >
friend class vtkNew
friend

Definition at line 62 of file vtkNew.h.

template<class T>
template<typename U >
friend class vtkSmartPointer
friend

Definition at line 64 of file vtkNew.h.

template<class T>
template<typename U >
friend class vtkWeakPointer
friend

Definition at line 66 of file vtkNew.h.

template<class T>
void vtkGarbageCollectorReport ( vtkGarbageCollector *  collector,
vtkNew< T > &  ptr,
const char *  desc 
)
friend

Function to report a reference held by a vtkNew to a collector.

Definition at line 196 of file vtkGarbageCollector.h.


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