New feature: concept checks. The library now does better compile-time
error checking to make sure that the types used to instantiate
library templates conform to the templates' requirements.
Removed two non-standard-conforming extensions: the second, defaulted
template parameter in bitset, and the third, default template
parameter in deque.
Many bug fixes, performance enhancements, and compatibility improvements.
Release 3.2: April 22, 1999
New feature: <valarray> header,
as defined in section 26.3 of the C++ standard.
<limits> header is now supported
on compilers that lack support for constant initialization of
static const data members, such as Microsoft v6.0.
Performance improvements in copy for compilers that
lack support for partial specialization of templates.
Bug fixes, particularly in multithreading support for non-SGI compilers.
The at member function is now supported for the vector
and deque classes. (It was previously supported only for
string.)
Release 3.12: February 2, 1999
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.
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.
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).
Release 3.01: October 31, 1997
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.
Release 3.0: October 31, 1997
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.
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.)
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.
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.