45 #ifndef __vtkWeakPointer_h
46 #define __vtkWeakPointer_h
85 return static_cast<T*
>(this->
Object);
93 return static_cast<T*
>(this->
Object);
102 return *
static_cast<T*
>(this->
Object);
110 return static_cast<T*
>(this->
Object);
119 #if defined(__HP_aCC) || defined(__IBMCPP__)
120 # define VTK_WEAK_POINTER_DEFINE_OPERATOR_WORKAROUND(op) \
121 vtkstd_bool operator op (NullPointerOnly*) const \
123 return ::operator op (*this, 0); \
126 class NullPointerOnly {};
128 VTK_WEAK_POINTER_DEFINE_OPERATOR_WORKAROUND(==)
129 VTK_WEAK_POINTER_DEFINE_OPERATOR_WORKAROUND(!=)
130 VTK_WEAK_POINTER_DEFINE_OPERATOR_WORKAROUND(<)
131 VTK_WEAK_POINTER_DEFINE_OPERATOR_WORKAROUND(<=)
132 VTK_WEAK_POINTER_DEFINE_OPERATOR_WORKAROUND(>)
133 VTK_WEAK_POINTER_DEFINE_OPERATOR_WORKAROUND(>=)
134 # undef VTK_WEAK_POINTER_DEFINE_OPERATOR_WORKAROUND
145 #define VTK_WEAK_POINTER_DEFINE_OPERATOR(op) \
148 operator op (const vtkWeakPointer<T>& l, const vtkWeakPointer<T>& r) \
150 return (l.GetPointer() op r.GetPointer()); \
153 inline vtkstd_bool operator op (T* l, const vtkWeakPointer<T>& r) \
155 return (l op r.GetPointer()); \
158 inline vtkstd_bool operator op (const vtkWeakPointer<T>& l, T* r) \
160 return (l.GetPointer() op r); \
172 #undef VTK_WEAK_POINTER_DEFINE_OPERATOR
177 inline ostream& operator << (ostream& os, const vtkWeakPointer<T>& p)
179 return os << static_cast<const vtkWeakPointerBase&>(p);
vtkWeakPointerBase & operator=(vtkObjectBase *r)
vtkWeakPointer(const vtkWeakPointerBase &r)
vtkWeakPointer & operator=(const vtkWeakPointerBase &r)
vtkWeakPointer(T *r, const NoReference &n)
a weak reference to a vtkObject.
Non-templated superclass for vtkWeakPointer.
vtkWeakPointer & operator=(T *r)
#define VTK_WEAK_POINTER_DEFINE_OPERATOR(op)