Tools.h++ is a rich, robust, and versatile C++ foundation class library: a set of software parts you can use to build virtually any application.
Tools.h++ is an industry standard. It is shipped by a wide variety of compiler vendors with every copy of their compilers. Preferred by thousands of users world wide, it is ported to numerous compilers and operating systems. Tools.h++ is available on almost any development platform you choose.
This new version of Tools.h++ is built on the Standard C++ Library. To aid your transition into this technology, Tools.h++ provides a familiar object-oriented interface, and a reliable upward migration path. You can count on Tools.h++ to track and incorporate revisions of the Standard C++ Library as they are approved.
Your new Tools.h++ package includes:
Powerful single, multibyte, and wide character support
You can manipulate single and multibyte strings with class RWCString's full suite of operators and functions, or choose class RWWString for wide character strings. Both classes make it easy to do concatenation, comparison, indexing (with optional bounds checking), I/O, case changes, stripping, and many other functions. In addition, classes RWCSubString and RWWSubString allow extraction and assignment to substrings; classes RWCRegexp and RWCRExpr support regular expression pattern searches; and classes RWCTokenizer and RWWTokenizer break single and wide character strings, respectively, into separate tokens.
Extended regular expressions
Here's a richer set of pattern matching tools you can use to search for information in strings. The new Tools.h++ extended regular expression features are a subset of those found in the ANSI/ISO standard POSIX.2 (Portable Operating System Interface), and require the presence of the Standard C++ Library.
Time and date handling classes
You can calculate the number of days between two dates, or the day of the week a date represents. Read and write days or times in arbitrary formats, or whatever you need to do. Tools.h++ helps you master time.
Internationalization support
You can internationalize your software with the convenient and easy-to-use framework of class RWLocale, and use class RWTimeZone to manipulate time zones and daylight-saving time. The entire library is eight-bit clean, so you can use it with any eight-bit character set. Embedded nulls are fully supported.
Endian streams
You can transfer information between operating systems with the efficiency of a binary stream. The endian streams mechanism, which keeps a record of the operating environment where information originates, allows the stream to be read on any system regardless of its native size or byte order.
Multithread safe
You can count on multithread safety. When compiled with a multithread option, the library uses multithread safe system facilities, with enough internal locking to maintain its internal integrity. See the release notes for your compiler.
Persistent store
This new version of Tools.h++ enhances an already powerful and sophisticated store facility. Isomorphic persistence, which maintains an object's pointer relationships, is now supported for most Tools.h++ collections, including the template-based collections. You can also implement isomorphic persistence on your own classes. Objects that inherit from RWCollectable have polymorphic persistence, which not only maintains pointer-relationships, but also allows processes to restore objects without knowing their types.
Template based classes
Twenty-eight new or re-engineered class templates based on the Standard C++ Library container classes. You can use the full interface to these classes if your development environment supports the Standard C++ Library. If you don't have the Standard C++ Library, Tools.h++ supplies template-based classes with a subset of the same interfaces.
Generic collection classes
If your compiler does not yet support templates, Tools.h++ includes a set of template-like classes that use the C++ preprocessor and <generic.h>, a header file included with most compilers. The interface to these generic classes is similar to the template-based classes, so you can make an easy transition.
Smalltalk-like collection classes
You get a complete library of collection classes, modeled after the Smalltalk-80 programming environment, including Set, Bag, Queue, Stack, OrderedCollection, SortedCollection, Dictionary, and more.
Many other features: RWFile Class encapsulates standard file operations. B-tree disk retrieval uses B-trees for efficient keyed access to disk records. File Space Manager allocates, deallocates and coalesces free space within a file. A complete error handling facility, which takes advantage of C++ exceptions if they are available. Still more classes, including: bit vectors, virtual I/O streams, cache managers, and virtual arrays.