templates.
• Improved support for insert_iterator when used with hash tables and slist.
• Documentation bug fix: documentation now makes it clear which library features are standard and which are SGI extensions.
• Bug fixes.
• Added a Frequently Asked Questions list.
• Bug fixes, particularly in multithreading support for non-SGI compilers.
• The
• Minor bug fixes.
• The <string> and <bitset> headers are now supported on compilers that lack full support for member templates and partial specialization, such as Microsoft v6.0.
• Code to support multithreading has been consolidated in a single file, so that system dependences are better isolated.
• Minor bug fixes.
• Faster operator[] in map.
• Algorithmic improvements in find, find_if, and partition.
• The standard exception hierarchy is now usable on compilers that do not provide an <exception> header.
This release provides several new features.
• Standard-conforming string and bitset classes, and the standard exception hierarchy.
• Standard-conforming allocators, including the default allocator class allocator<T>. All containers now use standard allocators, and all containers now support allocators whose instances are distinct. Old-style allocators, like alloc, are still supported for backward compatibility.
• Algorithmic improvements in search.
• All sequences now support the resize and assign member functions. All sequences now properly support overloaded insert member functions and constructors in the presence of member templates.
• Bug fixes in rope, and minor bug fixes elsewhere. Minor changes for standard conformance.
• Standard-conforming auto_ptr class.
• Internal names, such as names of function and template parameters, have been changed so that they cannot conflict with user names (including user macros).
This is a minor release. It consists only of bug fixes (the most important ones are in rope), small changes to reflect changes in the Final Draft International Standard (FDIS), and performance improvements in single-element insertion into containers.
• Major reorganization of header files. Headers now have the names described in the draft C++ standard. (Old header names are provided as well for backward compatibility.) The new-style headers declare their contents in namespace std; the old-style headers do too, but they import those declarations into the global namespace with using declarations. So, for example, #include <vector.h> is roughly equivalent to #include <vector> followed by the declaration using std::vector;.
Note that namespace std is only enabled for compilers whose support for namespaces is sufficient; this is controlled by the header <stl_config.h>.
• Bug fixes, and minor changes for standard conformance.
• Bug fixes, most importantly in rope.
• New version of reverse_iterator that takes only a single template parameter, as described in the draft standard. (This relies on iterator_traits, so you can only use the new version of reverse_iterator if your compiler supports partial specialization.)
• New algorithms: find_first_of, search_n, find_end
• Changed the iterator tag classes so that they form an inheritance hierarchy.
• Added the -> operator to all predefined iterators (except for output iterators).
• Bug fixes, most importantly in rope and deque.
• New feature: function object adaptors for member functions. This is a family of classes: mem_fun_t, mem_fun_ref_t, mem_fun1_t, mem_fun1_ref_t.
Bug fixes only, no new features.
This is a major release, with many new features. Here are some of the most important.
• Exception safety. All STL components are now exception safe.
• New container class: rope. A scalable string representation.
• New container class: slist. Singly linked lists.
• Member templates. If your compiler supports member templates, then you will be able to use the fully general form of containers' copy constructors and insert member functions.
• New mechanism for accessing iterators' associated type information: iterator_traits. (Note: you can only use iterator_traits if your compiler supports 'partial specialization'.) The algorithms count, count_if, and distance have been rewritten in terms of iterator_traits.
• Reimplementation of deque. deque has been completely rewritten, for higher performance.
• type_traits mechanism, which allows omission of null constructor and destructor calls.
• New temporary_buffer class. This was partially motivated by exception safety, but it is also more convenient and more efficient than the old get_temporary_buffer and return_temporary_buffer functions.
• New allocator, debug_alloc, which is useful for verifying the correctness of memory allocation and deallocation.
• New algorithms: copy_n, lexicographical_compare_3way, power, uninitialized_copy_n.
• Greater portability. The SGI STL can now be compiled using Microsoft Visual C++ 5.0, and Borland C++ 5.02; it should not be difficult to port it to any other compiler that has good support for templates. (Specifically, any compiler that has default template parameters.) Most compiler-specific code is isolated in the file stl_config.h.
Other STL Web sites
• The Matrix Template Library at Notre Dame. A high-performance generic linear algebra library.
• The Rensselaer STL site by David Musser
• The Renssalaer STL online reference The STL tutorial at Technical University Vienna Port of the SGI STL to other compilers, by Boris Fomitchev.
• Port of the SGI STL to Microsoft Windows CE compilers, by Giuseppe Govi.