46VTK_ABI_NAMESPACE_BEGIN
 
   64  template <
typename U = T>
 
   65  static void CheckTypes() noexcept
 
   68      "vtkNew<T>'s T type has not been defined. Missing include?");
 
   70      "Cannot store an object with undefined type in " 
   71      "vtkNew. Missing include?");
 
   72    static_assert(std::is_base_of<T, U>::value,
 
   73      "Argument type is not compatible with vtkNew<T>'s " 
   75    static_assert(std::is_base_of<vtkObjectBase, T>::value,
 
   76      "vtkNew can only be used with subclasses of vtkObjectBase.");
 
  100  template <
typename U>
 
  104    vtkNew::CheckTypes<U>();
 
  118    T* obj = this->Object;
 
  121      this->Object = 
nullptr;
 
  141  T* 
Get() const noexcept { 
return this->Object; }
 
  142  operator T*() 
const noexcept { 
return static_cast<T*
>(this->Object); }
 
  150  T& 
operator*() const noexcept { 
return *
static_cast<T*
>(this->Object); }
 
  158    this->Object = other.Object;
 
  159    other.Object = 
nullptr;
 
Allocate and hold a VTK object.
 
void Reset()
Deletes reference to instance of T.
 
T * Get() const noexcept
Get a raw pointer to the contained object.
 
vtkNew()
Create a new T on construction.
 
T * operator->() const noexcept
Enable pointer-like dereference syntax.
 
vtkNew(vtkNew &&o) noexcept
Move the object into the constructed vtkNew wrapper, stealing its reference.
 
~vtkNew()
Deletes reference to instance of T.
 
vtkNew(vtkNew< U > &&o) noexcept
Move the object into the constructed vtkNew wrapper, stealing its reference.
 
T * GetPointer() const noexcept
Get a raw pointer to the contained object.
 
T & operator*() const noexcept
Dereference the pointer and return a reference to the contained object.
 
vtkNew< T > & operator=(vtkNew< T > &&other) noexcept
Move assignment operator.
 
abstract base class for most VTK objects
 
Hold a reference to a vtkObjectBase instance.
 
a weak reference to a vtkObject.