template<class T> class PP_LnPtr

A Reference Counted Smart Pointer for Intrinsic or User-Defined Types for ParmParse

Inheritance:

PP_LnPtr


public members:

PP_LnPtr ()
PP_LnPtr (T* rhs)
PP_LnPtr<T>& operator= (const PP_LnPtr<T>& rhs)
PP_LnPtr<T>& operator= (T* rhs)
~PP_LnPtr ()
bool unique () const
int linkCount () const
T& operator* () const
bool isNull () const
bool operator== (const PP_LnPtr<T>& rhs) const
bool operator!= (const PP_LnPtr<T>& rhs) const

Documentation

The template class PP_LnPtr<T> provides a reference counted wrapper around a pointer to type T (a T*). This "smart" pointer is intended for use with any type type T, including the intrinsic types. For this reason, we do not supply an operator->(), as such an operator on intrinsic types has only recently become a part of the C++ language and many compilers do not yet implement it.

This is a convenience class for ParmParse and will not be in any way supported by anyone at ANAG.

PP_LnPtr ()
The default constructor. The wrapped pointer is null.

PP_LnPtr (T* rhs)
Construct a PP_LnPtr<T> setting the wrapped pointer to rhs.

PP_LnPtr<T>& operator= (const PP_LnPtr<T>& rhs)
The copy assignment operator. The contained pointer is set to the one wrapped by rhs. The reference count is decremented on this object and the reference count is incremented for the newly wrapped pointer.

PP_LnPtr<T>& operator= (T* rhs)
Sets the wrapped pointer to rhs. Decrements the count on the previously wrapped pointer and deletes it if there was only one reference.

~PP_LnPtr ()
The destructor -- decrements the reference count and deletes the wrapped pointer if there is only one reference.

bool unique () const
Returns true if only one reference to the wrapped pointer.

int linkCount () const
Returns the number of references to the wrapped pointer.

T& operator* () const
Returns a reference to the value pointed to by the wrapped pointer; i.e. dereferencing this PP_LnPtr<T>, returns the dereferenced wrapped pointer. It is an error if the wrapped pointer is null.

bool isNull () const
Returns true if the wrapped pointer is null.

bool operator== (const PP_LnPtr<T>& rhs) const
Are the two pointers (not the values to which they point) equal?

bool operator!= (const PP_LnPtr<T>& rhs) const
Are the two pointers not equal?


this class has no child classes.

alphabetic index hierarchy of classes


Chombo

Copyright Notice

This software is copyright (C) by the Lawrence Berkeley National Laboratory. Permission is granted to reproduce this software for non-commercial purposes provided that this notice is left intact.

It is acknowledged that the U.S. Government has rights to this software under Contract DE-AC03-765F00098 between the U.S. Department of Energy and the University of California.

This software is provided as a professional and academic contribution for joint exchange. Thus it is experimental, is provided ``as is'', with no warranties of any kind whatsoever, no support, no promise of updates, or printed documentation. By using this software, you acknowledge that the Lawrence Berkeley National Laboratory and Regents of the University of California shall have no liability with respect to the infringement of other copyrights by any part of this software.