Provided by: libsc-doc_2.3.1-21_all bug

NAME

       sc::Ref< T > - A template class that maintains references counts.

SYNOPSIS

       #include <ref.h>

       Inherits sc::RefBase.

   Public Member Functions
       Ref ()
           Create a reference to a null object.
       Ref (T *a)
           Create a reference to the object a.
       Ref (const Ref< T > &a)
           Create a reference to the object referred to by a.
       template<class A > Ref (const Ref< A > &a)
           Create a reference to the object referred to by a.
       ~Ref ()
           Delete this reference to the object.
       T * operator-> () const
           Returns the reference counted object.
       T * pointer () const
           Returns a pointer the reference counted object.
       RefCount * parentpointer () const
           Implements the parentpointer pure virtual in the base class.
       operator T* () const
       T & operator* () const
           Returns a C++ reference to the reference counted object.
       int null () const
           Return 1 if this is a reference to a null object.
       int nonnull () const
           Return !null().
       template<class A > int operator== (const Ref< A > &a) const
           A variety of ordering and equivalence operators are provided using the Identity class.
       template<class A > int operator>= (const Ref< A > &a) const
       template<class A > int operator<= (const Ref< A > &a) const
       template<class A > int operator> (const Ref< A > &a) const
       template<class A > int operator< (const Ref< A > &a) const
       template<class A > int operator!= (const Ref< A > &a) const
       int compare (const Ref< T > &a) const
           Compare two objects returning -1, 0, or 1.
       void clear ()
           Refer to the null object.
       Ref< T > & operator= (const Ref< T > &c)
           Assignment to c.
       template<class A > Ref< T > & operator= (const Ref< A > &c)
           Assignment to c.
       Ref< T > & operator<< (const RefBase &a)
           Assignment to the object that a references using dynamic_cast.
       Ref< T > & operator<< (RefCount *a)
           Assigns to the given base class pointer using dynamic_cast.
       Ref< T > & operator= (T *cr)
           Assignment to cr.
       void assign_pointer (T *cr)
           Assignment to cr.
       void check_pointer () const
           Check the validity of the pointer.
       void ref_info (std::ostream &os) const
           Print information about the reference to os.
       void warn (const char *s) const
           Print a warning concerning the reference.

   Additional Inherited Members

Detailed Description

   template<class T>
       class sc::Ref< T >" A template class that maintains references counts.

       Several of these operations can cause a reference to an object to be replaced by a
       reference to a different object. If a reference to a nonnull object is eliminated, the
       object's reference count is decremented and the object is deleted if the reference count
       becomes zero.

       There also may be a to convert to T*, where T is the type of the object which Ref
       references. Some compilers have bugs that prevent the use of operator T*(). The pointer()
       member should be used instead.

Constructor & Destructor Documentation

   template<class T > sc::Ref< T >::~Ref () [inline]
       Delete this reference to the object. Decrement the object's reference count and delete the
       object if the count is zero.

Member Function Documentation

   template<class T > int sc::Ref< T >::compare (const Ref< T > & a) const [inline]
       Compare two objects returning -1, 0, or 1. Similar to the C library routine strcmp.

   template<class T > int sc::Ref< T >::null () const [inline]
       Return 1 if this is a reference to a null object. Otherwise return 0.

   template<class T > T& sc::Ref< T >::operator* () const [inline]
       Returns a C++ reference to the reference counted object. The behaviour is undefined if the
       object is null.

   template<class T > T* sc::Ref< T >::operator-> () const [inline]
       Returns the reference counted object. The behaviour is undefined if the object is null.

   template<class T > Ref<T>& sc::Ref< T >::operator<< (RefCount * a) [inline]
       Assigns to the given base class pointer using dynamic_cast. If the dynamic_cast fails and
       the argument is nonnull and has a reference count of zero, then it is deleted.

Author

       Generated automatically by Doxygen for MPQC from the source code.