The C++ Standard Library is a collection of essential classes and functions used by
millions of C++ programmers on a daily basis. Being part of the ISO Standard of the
C++ Programming Language, an implementation is distributed with virtually every
C++ compiler. Code written with the C++ Standard Library is therefore portable across
compilers and target platforms.
The Library is more than 20 years old. Its initial versions were heavily inspired by
a (then proprietary) C++ library called the Standard Template Library (STL) , so much
so that many still incorrectly refer to the Standard Library as “the STL.” The STL library
pioneered generic programming with templated data structures called containers and
algorithms , glued together with the concept of iterators . Most of this work was adapted by
the C++ standardization committee, but nevertheless neither library is a true superset of
the other.
The C++ Standard Library today is much more than the STL containers and
algorithms. For decades, it has featured STL-like string classes, extensive localization
facilities, and a stream-based I/O library, as well as all headers of the C Standard Library.
In recent years, the C++11 and C++14 editions of the ISO standard have added, among

other things, hash map containers, generic smart pointers, a versatile random-number-
generation framework, a powerful regular expression library, more expressive utilities

for function-style programming, type traits for template metaprogramming, and a
portable concurrency library featuring threads, mutexes, condition variables, and atomic
variables. Many of these libraries are based on Boost, a collection of open-source C++