245#ifdef ALLOW_AUTOMATIC_REF_COUNT_PTR_CONSTRUCTION
265 : Referent(rhs.
Peek())
273 : Referent(rhs.Referent)
280#ifdef ALLOW_AUTOMATIC_REF_COUNT_PTR_CONSTRUCTION
283 if (Referent ==
object) {
299 Referent->Release_Ref();
312 rhs.
Peek()->Add_Ref();
316 Referent->Release_Ref();
319 Referent = rhs.
Peek();
327 rhs.Referent->Add_Ref();
332 Referent->Release_Ref();
335 Referent = rhs.Referent;
342 Referent->Release_Ref();
354 operator const DummyPtrType *(void)
const
356 return (DummyPtrType *)(Referent);
362 Referent->Release_Ref();
374 G_ASSERT(0 != Referent);
387 enum ReferenceHandling { GET, PEEK};
389 RefCountPtr(T * referent, ReferenceHandling reference_handling)
392 if (reference_handling == PEEK && 0 != referent) {
402template <
class LHS,
class RHS>
408template <
class LHS,
class RHS>
419 FAIL_IF(0 != dummy) {
423 return 0 == rhs.
Peek();
431 FAIL_IF(0 != dummy) {
435 return 0 != rhs.
Peek();
438template <
class Derived,
class Base>
441 return Create_Peek((Derived *)base.
Peek());
const RefCountPtr< T > & operator=(DummyPtrType *dummy_ptr)
RefCountPtr(const RefCountPtr< RHS > &rhs)
T * operator->(void) const
friend RefCountPtr< T > Create_Get(T *t)
T & operator*(void) const
RefCountPtr(const RefCountPtr &rhs)
friend RefCountPtr< T > Create_Peek(T *t)
friend RefCountPtr< T > Create_NEW(T *t)
RefCountPtr(DummyPtrType *dummy)
bool operator<(const RefCountPtr< LHS > &lhs, const RefCountPtr< RHS > &rhs)
bool operator==(const RefCountPtr< LHS > &lhs, const RefCountPtr< RHS > &rhs)
bool operator!=(DummyPtrType *dummy, const RefCountPtr< RHS > &rhs)
RefCountPtr< Derived > Static_Cast(const RefCountPtr< Base > &base)