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