1 struct Atomic_t { Atomic_tAtomic_t2 Atomic_t(int i) : val(i) { } 3 volatile int val; 4 }; 5 class RefCount { 6 public: RefCount(Atomic_t c)7 RefCount(Atomic_t c) : m_count(c) { } 8 Atomic_t m_count; 9 }; 10 class IntrusiveCountableBase { 11 RefCount m_useCount; 12 protected: 13 IntrusiveCountableBase(); 14 }; IntrusiveCountableBase()15IntrusiveCountableBase::IntrusiveCountableBase() : m_useCount(0) { } 16 17