The Standard C++ Library is a large and comprehensive collection of classes and functions for fine-grained, low-level programming. Within this library, you will find the following components:
The large set of data structures and algorithms formerly known as the Standard Template Library (STL)
An iostream facility
A locale facility
A templatized string class
A templatized complex class for representing complex numbers
A valarray class optimized for handling numeric arrays
A uniform framework for describing the execution environment, using a template class named numeric_limits and specializations for each fundamental datatype
Memory management features
Extensive support for national character sets
Exception handling features
The STL portion of the Standard C++ Library is not object-oriented. If you are accustomed to the benefits of object-oriented programming, their absence may necessitate some adjustment. Encapsulation of data and functionality in objects is a hallmark of object-oriented programming. In the Standard C++ Library, however, the data structures are separate from the algorithms you use to manipulate them.
This feature can provide a number of advantages, such as smaller source code, and the flexibility of using algorithms with C++ pointers and arrays as well as conventional objects. It can also lead to more efficient coding and faster execution, since it creates a direct, nuts-and-bolts approach to solving problems.
The main disadvantage of using the Standard C++ Library directly is increased risk of error. For example, the library's iterators must not be mismatched or invalidated, and iterators in multithreaded environments should be wrapped before being shared among threads. The templates can cause less precise diagnostics, and code that grows unexpectedly large. Experience with the library and your own compiler will help diminish these problems.
This Rogue Wave implementation of the Standard C++ Library is certified for use with Tools.h++. The Rogue Wave product Tools.h++, version 7.0 and later, encapsulates the Standard C++ Library with an object-oriented interface. Used together, Tools.h++ and the Standard C++ Library are designed to provide the benefits of both low-level generic programming and object-orientation.
Tools.h++ also contains features not included in the standard, like time, date, and regular expression classes, enhanced strings, object persistence, and virtual streams. The new product Tools.h++ Professional extends the functionality of the original Tools.h++ with modules on Java interoperability, networks, and CORBA. For many programming tasks, you may find it easier and more convenient to use Tools.h++ and Tools.h++ Professional without accessing the Standard C++ Library directly.
This implementation of the Standard C++ Library is largely compatible with previous 2.x implementations, and largely incompatible with 1.x versions.
Please note that some compiler and library vendors have not yet implemented the whole range of language features defined by the ANSI/ISO standard. In the User's Guide and Locales and Iostreams, we draw your attention to places in the code where this might be a problem. If your vendor is still in the process of meeting the standard, some of the techniques demonstrated in this User's Guide may not work. We include them anyway to demonstrate the full range of capabilities of the Standard C++ language. Compilers will catch up, and this guide will be more useful to you if it is as complete as possible.
OEM Edition, ©Copyright 1999, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.