|
MPQC
2.3.1
|
A template class that maintains references counts. More...
#include <ref.h>
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 () | |
| Create a reference to the object a. | |
| 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. | |
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.
Create a reference to the object a.
Do a dynamic_cast to convert a to the appropiate type. Create a reference to the object a. Do a dynamic_cast to convert a to the appropiate type. Delete this reference to the object. Decrement the object's reference count and delete the object if the count is zero.
Compare two objects returning -1, 0, or 1.
Similar to the C library routine strcmp.
Return 1 if this is a reference to a null object.
Otherwise return 0.
| 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.
| T* sc::Ref< T >::operator-> | ( | ) | const [inline] |
Returns the reference counted object.
The behaviour is undefined if the object is null.
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.
| int sc::Ref< T >::operator== | ( | const Ref< A > & | a | ) | const [inline] |
A variety of ordering and equivalence operators are provided using the Identity class.