The Standard Template Library (as its name says) for the C++ language. It provides a standard set of generic functions and datatypes that make C++ programming easier.


SGI have some good documents on the STL on their site.

But it is not all good. The STL is a matter of some contention in many circles of C++ programmers.

It is the source of all sorts of nasty errors. When you have a compile error in your code which uses STL, it can be quite horrid and make debugging this can be a major headache. See the C++ page for an example of this.

Historically, one of the big problems with the STL were the different implementations of the 'standard' floating around. This, combined with the fact that each C++ Compiler seemed to have a few bugs to do with the template implementations, meant a lot of programmers avoided the STL. However, Compilers have matured a lot in recent years and STL implementations seem to be somewhat more standardised now. Recent compilers such as g++-3.x and VisualC++ 7 seem to handle all the STL template constructs well, if not with very informative error messages. Also, STLPort is a nice free OpenSource STL implementation which is used widely.

If you like what STL can do for you, but just want that extra generic programming power that can be found in C++, perhaps you should look at Boost.