Stl Is Not The Cpp Standard Library

People often refer to the ANSI-CeePlusPlus standard library and the StandardTemplateLibrary as if they are one and the same.

They are not. Nor is one a subset of the other.

The StandardTemplateLibrary is a collection of generic classes (useful in statically-typed languages with generics) originally developed for AdaLanguage, and ported over to C++ in the 90s.

The C++ standard library didn't truly come into existence until the publication of the ANSI C++ standard in 1998. Before that, there were libraries described by the AnnotatedReferenceManual?; some of which (iostream, etc.) were widely used and some of which (the ARM container classes) generally weren't.

When the Standard Library was developed as part of the standard; a big chunk of the STL was made part of the Standard Library. Some key features (such as the hashed containers) were not made part of the standard C++ library (though hash_map and the like come with virtually all C++ implementations). But the Standard Library contains lots of things (iostreams again, the exception hierarchy, complex, etc.) that aren't and never were part of the STL.

Rumor has it that more of the STL (including the hash containers) will be added to the C++ standard library when the newest version of the C++ standard gets published. In addition, parts of the BoostLibraries are being considered for C++ standardization. But not all of the BoostLibraries; it will be just as wrong to claim that BoostLibraries == the standard library when that occurs.

End of rant. :) (July 14, 2004)

See for current perspectives TheCppStandardsCommittee and TechnicalReportOne.


CategoryCpp


EditText of this page (last edited May 17, 2007) or FindPage with title or text search