man sc_Ref (Fonctions bibliothèques) - A template class that maintains references counts.

NAME

sc::Ref - 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.

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.

Reimplemented in sc::RefSCDimension.

Author

Generated automatically by Doxygen for MPQC from the source code.