A String Class for ParmParse
The class PP_String is used to store and manipulate character strings. It has an efficient underlying storage mechanism and some useful string manipulation operations.The PP_String class is implemented using a character array and reference count. Two PP_Strings may reference the same underlying character array with a reference count of two. When an PP_String copy constructor or copy operator is applied the reference count on the underlying character array is incremented but the actual string is not copied. That is, copying an PP_String is an inexpensive operation. When an PP_String is destructed, the reference count is decremented. The underlying character array is deleted only when the reference count goes to zero. Any operator that modifies an PP_String will make its own copy of the character array before the modification, unless it's the sole owner of the character array in the PP_String.
This is a convenience class for ParmParse and will not be in any way supported by anyone at ANAG.
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.