reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
125 static void retain(T *obj) { obj->Retain(); } 126 static void release(T *obj) { obj->Release(); } 136 T *Obj = nullptr; 139 using element_type = T; 142 IntrusiveRefCntPtr(T *obj) : Obj(obj) { retain(); } 147 IntrusiveRefCntPtr(IntrusiveRefCntPtr<X> &&S) : Obj(S.get()) { 152 IntrusiveRefCntPtr(const IntrusiveRefCntPtr<X> &S) : Obj(S.get()) { 163 T &operator*() const { return *Obj; } 164 T *operator->() const { return Obj; } 165 T *get() const { return Obj; } 184 IntrusiveRefCntPtrInfo<T>::retain(Obj); 189 IntrusiveRefCntPtrInfo<T>::release(Obj);unittests/ADT/IntrusiveRefCntPtrTest.cpp
15 struct SimpleRefCounted : public RefCountedBase<SimpleRefCounted> { 17 SimpleRefCounted(const SimpleRefCounted &) : RefCountedBase() { 30 SimpleRefCounted *S1 = new SimpleRefCounted; 30 SimpleRefCounted *S1 = new SimpleRefCounted; 31 IntrusiveRefCntPtr<SimpleRefCounted> R1 = S1; 32 SimpleRefCounted *S2 = new SimpleRefCounted(*S1); 32 SimpleRefCounted *S2 = new SimpleRefCounted(*S1); 33 IntrusiveRefCntPtr<SimpleRefCounted> R2 = S2;