sc_Ref man page

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 ()
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.

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]

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.

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.

template<class T> template<class A > int sc::Ref< T >::operator== (const Ref< A > & a) const [inline]

A variety of ordering and equivalence operators are provided using the Identity class.

Author

Generated automatically by Doxygen for MPQC from the source code.

Info

Sat Feb 11 2017 Version 2.3.1 MPQC