/// Base class for all reference counted SimGear objects
/// Classes derived from this one are meant to be managed with
/// the SGSharedPtr class.
-/// For more info see @SGSharedPtr.
+///
+/// For more info see SGSharedPtr. For using weak references see
+/// SGWeakReferenced.
class SGReferenced {
public:
{ return *this; }
static unsigned get(const SGReferenced* ref)
- { if (ref) return ++(ref->_refcount); else return ~0u; }
+ { if (ref) return ++(ref->_refcount); else return 0; }
static unsigned put(const SGReferenced* ref)
- { if (ref) return --(ref->_refcount); else return ~0u; }
+ { if (ref) return --(ref->_refcount); else return 0; }
static unsigned count(const SGReferenced* ref)
- { if (ref) return ref->_refcount; else return ~0u; }
+ { if (ref) return ref->_refcount; else return 0; }
static bool shared(const SGReferenced* ref)
{ if (ref) return 1u < ref->_refcount; else return false; }