home | help
sc::Ref< T >(3) 		      MPQC			 sc::Ref< T >(3)

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.

     Public Member Functions inherited from sc::RefBase
     virtual RefCount * parentpointer () const =0
	 Returns the DescribedClass pointer for the contained object.
     void require_nonnull () const
	 Requires that a nonnull reference is held.

   Additional Inherited Members
     Protected Member Functions inherited from sc::RefBase
     void warn (const char *msg) const
	 Print a warning message.
     void warn_ref_to_stack () const
	 Called when stack data is referenced.
     void warn_skip_stack_delete () const
	 Called when the deletion of stack data is skipped.
     void warn_bad_ref_count () const
	 Called when the reference count is corrupted.
     void ref_info (RefCount *p, std::ostream &os) const
	 Print information about the reference.
     void ref_info (std::ostream &os) const
     void check_pointer () const
     void reference (RefCount *)
     int dereference (RefCount *)

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  re-
     placed  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  op-
     erator 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.

     References sc::Ref< T >::clear().

Member Function Documentation
   template<class  T > int sc::Ref< T >::compare (const Ref< T > & a) const [in-
     line]
     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 ob-
     ject is null.

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

   template<class T > RefCount * sc::Ref< T >::parentpointer () const  [inline],
     [virtual]
     Implements the parentpointer pure virtual in the base class.

     Implements sc::RefBase.

Author
     Generated automatically by Doxygen for MPQC from the source code.

Version 2.3.1			 Thu Sep 3 2026 		 sc::Ref< T >(3)

home | help