cpp/utility

C++ includes a variety of utility libraries that provide functionality ranging from bit-counting to partial function application. These libraries can be broadly divided into two groups:


 * language support libraries, and
 * general-purpose libraries.

Language support
Language support libraries provide classes and functions that interact closely with language features and support common language idioms.

Type support
Basic types (e.g. std, std), RTTI (e.g. std), type traits (e.g. std, std)

Program utilities
Termination (e.g. std, std), environment (e.g. std), signals (e.g. std)

Dynamic memory management
Smart pointers (e.g. std), allocators (e.g. std or std), C-style memory management (e.g. std)

Error handling
Exceptions (e.g. std, std), assertions (e.g. assert)

Variadic functions
Support for functions that take an arbitrary number of parameters (via e.g. va_start, va_arg, va_end)

Function objects
Partial function application (e.g. std) and related utilities: utilities for binding such as std and std, polymorphic function wrappers: std, predefined functors (e.g. std, std), pointer-to-member to function converters std.

Date and time
Time tracking (e.g. std, std), C-style date and time (e.g. std, std)

Elementary string conversions
In addition to sophisticated locale-dependent parsers and formatters provided by the C++ I/O library, the C I/O library, C++ string converters, and C string converters, the header provides light-weight, locale-independent, non-allocating, non-throwing parsers and formatters for arithmetic types.

Formatting library
Facilities for type-safe string formatting.