Standard Template Library

As a Standard Template Library (STL ) are called different in the programming language C libraries written.

Originally with a Standard Template Library in the 1980s at Hewlett -Packard (abbreviated HP ) developed in C written library called, which was based largely on generic programming with a focus on data structures and algorithms. This library had a substantial impact the so-called C standard library, today an integral part of the programming language is C .


Developed at HP STL goes back to very ancient roots. Already in 1971 there was the first drafts of generic libraries of Dave Musser. 1979 Alexander Stepanov began with the development of his ideas in this area. The reaction in a large programming language, but was only in 1987 with the Ada programming language.

Stepanov and Meng Lee, then working at Hewlett -Packard, called the program they developed library STL. Later this library is public domain. Then, in 1993, at a time when C was still in an early stage of development, they presented the library to the C standardization committee before which over time worked out a concrete proposal for inclusion in the C programming language from what finally to integration led.

Stepanov later moved to Silicon Graphics (short: SGI) and continued even after that work on his library continues.

Reference to the C Standard Library

Although by today's C standard library comes a large part of the STL in its developed at HP version on the 1993 level, but in different details distinguishes them yourself. For this reason it is not possible to identify a subset of the C standard library as an STL. The STL in the former version neither strings (strings) still contained Ein-/Ausgabedatenströme (streams). In the C Standard, the term STL does not occur.

Various libraries called STL

Unofficially, the name STL has wide circulation. The different ideas about the meaning of this term but sometimes lead to misunderstandings. On SGI is " STL " for example, published there meant library, which in turn is very different from the developed at HP version.

Even today (2008) there is no defined by national or international standards library called STL.

The following is independent of the C standard library libraries STL call themselves or carry the part of STL in the name:

  • The original, developed at HP Library STL
  • The cultivated at Silicon Graphics STL; compared with the HP STL greatly expanded; contains more or less the C standard library with the exception of C acquired libraries; In addition, extensions such as hash maps that were not included in the standard, as well as rope, a data type for the efficient processing of very long strings
  • The free library STLport; was for a time a kind of alternative to the C Standard Library
  • . a NET library called STL / CLI; was developed to take advantage of C / CLI language extensions introduced; can not work with standard C compilers translate