HP aC++/HP C Programmer's Guide (B3901-90036; A.06.26; September 2011)
standardization process is the Standard C++ Library, a large and comprehensive
collection of classes and functions.
Introduction
HP aC++ provides the Rogue Wave implementation of the ANSI/ISO Standard C++
Library. This implementation includes the following features:
• A subset of data structures and algorithms, updated from the original library
developed at Hewlett-Packard by Alex Stepanov and Meng Lee and known as the
C++ Standard Template Library (STL)
NOTE: The public domain C++ Standard Template Library is not supported by
this Standard C++ Library.
Technical Corrigenda 1 has changed the STL function make_pair to take their
arguments by value instead of const reference. This change brings the HP library
into compliance if the enabling macro -D__HP_TC1_MAKE_PAIR is specified at
compile time. For binary compatibility reasons, the default behavior is unchanged.
• A templatized string class
• A templatized class for representing complex numbers.
• A framework that describes the execution environment, using a template class,
numeric_limits, and specializations for each fundamental data type
• Memory management features
• Language support features
• Exception handling features
Introduction to Using the Standard C++ Library
Although the design of a large portion of the Standard C++ Library is, in many ways,
not object-oriented, C++ excels as a language for manipulating objects. How do you
integrate the non-object-oriented architecture of the library with the strengths of the
language for manipulating objects?
The key is to use the right tool for each task. For a majority of programming tasks,
object-oriented techniques is the preferred approach. Products such as Rogue Wave’s
Tools.h++ Library, which encapsulate the Standard C++ Library with a familiar
object-oriented interface, provide the power and advantages of object-orientation.
Use Standard C++ Library components directly when you need flexibility or highly efficient
code. Use the more traditional approach to object-oriented design, such as encapsulation
and inheritance, to model larger problem domains and knit all the pieces into a complete
solution. To devise an architecture for your application, use encapsulation and inheritance
to compartmentalize the problem. For an efficient data structure or algorithm for a compact
problem that often resolves to a single class, use the Standard C++ Library. Use this
220 Tools and Libraries