10 Ref_ptr(Ref_ptr<T> const &o) : _o(o._o) { inc_ref_cnt(); }
11 Ref_ptr(T *o = 0) : _o(o) { inc_ref_cnt(); }
12 ~Ref_ptr() { dec_ref_cnt(); }
14 void operator = (Ref_ptr<T> const &o)
15 { dec_ref_cnt(); _o = o._o; inc_ref_cnt(); }
17 void operator = (T *o)
18 { dec_ref_cnt(); _o = o; inc_ref_cnt(); }
20 T *operator -> () const { return _o; }
21 T *operator * () const { return _o; }
22 operator Inv_ptr const * () const
23 { return reinterpret_cast<Inv_ptr const*>(_o); }
32 auto guard = lock_guard(cpu_lock);
37 void dec_ref_cnt() const
39 if (_o && _o->dec_ref_cnt() == 0)