23 #ifndef vtkSmartPointer_h 24 #define vtkSmartPointer_h 31 static T* CheckType(T* t) {
return t; }
82 return static_cast<T*
>(this->
Object);
86 return static_cast<T*
>(this->
Object);
95 return static_cast<T*
>(this->
Object);
104 return *
static_cast<T*
>(this->
Object);
112 return static_cast<T*
>(this->
Object);
171 #if defined(__HP_aCC) || defined(__IBMCPP__) 172 # define VTK_SMART_POINTER_DEFINE_OPERATOR_WORKAROUND(op) \ 173 bool operator op (NullPointerOnly*) const \ 175 return ::operator op (*this, 0); \ 178 class NullPointerOnly {};
180 VTK_SMART_POINTER_DEFINE_OPERATOR_WORKAROUND(==)
181 VTK_SMART_POINTER_DEFINE_OPERATOR_WORKAROUND(!=)
182 VTK_SMART_POINTER_DEFINE_OPERATOR_WORKAROUND(<)
183 VTK_SMART_POINTER_DEFINE_OPERATOR_WORKAROUND(<=)
184 VTK_SMART_POINTER_DEFINE_OPERATOR_WORKAROUND(>)
185 VTK_SMART_POINTER_DEFINE_OPERATOR_WORKAROUND(>=)
186 # undef VTK_SMART_POINTER_DEFINE_OPERATOR_WORKAROUND 197 #define VTK_SMART_POINTER_DEFINE_OPERATOR(op) \ 200 operator op (const vtkSmartPointer<T>& l, const vtkSmartPointer<T>& r) \ 202 return (l.GetPointer() op r.GetPointer()); \ 205 inline bool operator op (T* l, const vtkSmartPointer<T>& r) \ 207 return (l op r.GetPointer()); \ 210 inline bool operator op (const vtkSmartPointer<T>& l, T* r) \ 212 return (l.GetPointer() op r); \ 224 #undef VTK_SMART_POINTER_DEFINE_OPERATOR 230 inline ostream& operator << (ostream& os, const vtkSmartPointer<T>& p)
232 return os << static_cast<const vtkSmartPointerBase&>(p);
vtkSmartPointer()
Initialize smart pointer to NULL.
static vtkSmartPointer< T > Take(T *t)
Transfer ownership of one reference to the given VTK object to a new smart pointer.
static vtkSmartPointer< T > NewInstance(T *t)
Create a new instance of the given VTK object.
vtkSmartPointerBase & operator=(vtkObjectBase *r)
Assign object to reference.
vtkSmartPointer(T *r, const NoReference &n)
T * Get() const
Get the contained pointer.
vtkSmartPointer & operator=(T *r)
Assign object to reference.
Hold a reference to a vtkObjectBase instance.
static vtkSmartPointer< T > New()
Create an instance of a VTK object.
vtkSmartPointer & operator=(const vtkSmartPointer< U > &r)
Assign object to reference.
vtkSmartPointer(T *r)
Initialize smart pointer to given object.
Non-templated superclass for vtkSmartPointer.
T * operator->() const
Provides normal pointer target member access using operator ->.
void TakeReference(T *t)
Transfer ownership of one reference to the given VTK object to this smart pointer.
vtkSmartPointer(const vtkSmartPointer< U > &r)
Initialize smart pointer with a new reference to the same object referenced by given smart pointer...
T & operator*() const
Dereference the pointer and return a reference to the contained object.
#define VTK_SMART_POINTER_DEFINE_OPERATOR(op)
T * GetPointer() const
Get the contained pointer.