# Dinkum C++ Library Dinkum C++ Library # Dinkum C++ Library **Use of this Dinkum C++ LibraryReference is subject to limitations.Follow the link to the Copyright Notice, at the bottom of this page,for detailed restrictions.** * * * A C++ program can call on a large number of functions from the **Dinkum C++ Library**, a conforming implementation of the **Standard C++ library** as approved in 1990, and extended by several (non-normative) Technical Reports. These functions perform essential services such as input and output. They also provide efficient implementations of frequently used operations. Numerous function and class definitions accompany these functions to help you to make better use of the library. Most of the information about the Standard C++ library can be found in the descriptions of the **[C++ library headers](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_cpp.html#C++%20library%20headers)** that declare or define library entities for the program. ## Table of Contents **`· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · `** **`· · · · · · · · · · · · · · · · · `** **`· · · · · · · · · · · · · · · · · `** **`· · · `** **`C++ Library Overview· C Library Overview· Characters· Files and Streams· Formatted Output· Formatted Input· Locale Definitions· STL Conventions· Containers`** * * * The Standard C++ library consists of 51 required headers. This [implementation](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_index.html#implementation) also includes three additional headers, ``, ``, and ``, not required by the C++ Standard, for a total of 54 headers. Of these 54 headers, 16 constitute the **Standard Template Library**, or **STL**. These are indicated below with the notation (STL): `` -- (STL) for defining numerous templates that implement useful algorithms `` -- for defining a template class that administers sets of bits `` -- for defining a template class that supports complex arithmetic `` -- (STL) for defining a template class that implements a deque container `` -- for defining several functions that control exception handling `` -- for defining several iostreams template classes that manipulate external files `` -- (STL) for defining several templates that help construct predicates for the templates defined in [``](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_algorith.html) and [``](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_numeric.html) `` -- (STL) for defining template classes that implement hashed associative containers that map keys to values `` -- (STL) for defining template classes that implement hashed associative containers `` -- for declaring several iostreams manipulators that take an argument `` -- for defining the template class that serves as the base for many iostreams classes `` -- for declaring several iostreams template classes before they are necessarily defined `` -- for declaring the iostreams objects that manipulate the standard streams `` -- for defining the template class that performs extractions `` -- (STL) for defining several templates that help define and manipulate iterators `` -- for testing numeric type properties `` -- (STL) for defining a template class that implements a doubly linked list container `` -- for defining several classes and templates that control locale-specific behavior, as in the iostreams classes `` -- (STL) for defining template classes that implement associative containers that map keys to values `` -- (STL) for defining several templates that allocate and free storage for various container classes `` -- for declaring several functions that allocate and free storage `` -- (STL) for defining several templates that implement useful numeric functions `` -- for defining the template class that performs insertions `` -- (STL) for defining a template class that implements a queue container `` -- (STL) for defining template classes that implement associative containers `` -- (STL) for defining a template class that implements a singly linked list container `` -- for defining several iostreams template classes that manipulate string containers `` -- (STL) for defining a template class that implements a stack container `` -- for defining several classes useful for reporting exceptions `` -- for defining template classes that buffer iostreams operations `` -- for defining a template class that implements a string container `` -- for defining several iostreams classes that manipulate in-memory character sequences `` -- for defining class `type_info`, the result of the `typeid` operator `` -- (STL) for defining several templates of general utility `` -- for defining several classes and template classes that support value-oriented arrays `` -- (STL) for defining a template class that implements a vector container The Standard C++ library works in conjunction with the 18 headers from the **Standard C library**, sometimes with small alterations. The headers come in two forms, new and traditional. The new-form headers are: `` -- for enforcing assertions when functions execute `` -- for classifying characters `` -- for testing error codes reported by library functions `` -- for testing floating-point type properties `` -- for programming in ISO 646 variant character sets `` -- for testing integer type properties `` -- for adapting to different cultural conventions `` -- for computing common mathematical functions `` -- for executing nonlocal *goto* statements `` -- for controlling various exceptional conditions `` -- for accessing a varying number of arguments `` -- for defining several useful types and macros `` -- for performing input and output `` -- for performing a variety of operations `` -- for manipulating several kinds of strings `` -- for converting between various time and date formats `` -- for manipulating [wide streams](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_file.html#wide%20stream) and several kinds of strings `` -- for classifying [wide characters](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_charset.html#Wide-Character%20Encoding) The traditional Standard C library headers are: `` -- for enforcing assertions when functions execute `` -- for classifying characters `` -- for testing error codes reported by library functions `` -- for testing floating-point type properties `` -- for programming in ISO 646 variant character sets `` -- for testing integer type properties `` -- for adapting to different cultural conventions `` -- for computing common mathematical functions `` -- for executing nonlocal *goto* statements `` -- for controlling various exceptional conditions `` -- for accessing a varying number of arguments `` -- for defining several useful types and macros `` -- for performing input and output `` -- for performing a variety of operations `` -- for manipulating several kinds of strings `` -- for converting between various time and date formats `` -- for manipulating [wide streams](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_file.html#wide%20stream) and several kinds of strings `` -- for classifying [wide characters](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_charset.html#Wide-Character%20Encoding) Finally, in this [implementation](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_index.html#implementation), the Standard C++ library also includes several headers for compatibility with traditional C++ libraries: `` -- for defining several iostreams template classes that manipulate external files `` -- for declaring several iostreams manipulators that take an argument `` -- for declaring the iostreams objects that manipulate the standard streams `` -- for declaring several functions that allocate and free storage Other information on the Standard C++ library includes: **[C++ Library Overview](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_cpp.html)** -- how to use the Standard C++ library, including alternative mechanisms for [handling exceptions](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_cpp.html#Exceptions) **[C Library Overview](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_over.html)** -- how to use the Standard C library, including what happens at [program startup](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_over.html#program%20startup) and at [program termination](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_over.html#program%20termination) **[Characters](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_charset.html)** -- how to write [character constants](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_charset.html#character%20constant) and [string literals](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_charset.html#string%20literal), and how to convert between [multibyte characters](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_charset.html#Multibyte%20Characters) and [wide characters](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_charset.html#Wide-Character%20Encoding) **[Files and Streams](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_file.html)** -- how to read and write data between the program and [files](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_file.html#files) **[Formatted Output](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_prin.html)** -- how to generate text under control of a [format string](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_prin.html#format%20string) **[Formatted Input](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_scan.html)** -- how to scan and parse text under control of a [format string](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_prin.html#format%20string) **[Locale Definitions](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_localedefs.html)** -- how to adapt to different American and European cultures **[STL Conventions](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_stl.html)** -- how to read the descriptions of [STL](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_index.html#STL) template classes and functions **[Containers](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_cont.html)** -- how to use an arbitrary [STL](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_index.html#STL) container template class As much as possible, this Reference indicates any extensions to standard-conforming behavior particular to this **implementation**. Moreover, even though the C++ Standard is no longer new, not all compilers support all the features described here. Hence, this implementation introduces macros, or alternative declarations, where necessary to provide reasonable substitutes for the capabilities required by the C++ Standard. * * * See also the **[Index](https://docs.qualcomm.com/doc/80-N3040-23/topic/_cpp_index.html)**. *[Copyright](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_crit_pjp.html) © 1992-2006by P.J. Plauger. All rights reserved.* Last Published: Oct 06, 2026 [Previous Topic unlink](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/c_posix_unistd.md) [Next Topic C++ Library Overview](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/cpp_lib_cpp.md)