Книга: Standard Template Library Programmer

What's New

What's New

Release 3.3: June 8, 2000

• 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.

• 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.

Release 3.13: March 11, 1999

• Added a Frequently Asked Questions list.

• 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.

Release 3.11: July 21, 1998

• 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.

Release 3.1: June 9, 1998

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).

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.

Release 2.03: September 9, 1997

• 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).

Release 2.02: July 31, 1997

• 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.

Release 2.01: June 30, 1997

Bug fixes only, no new features.

Release 2.0: June 13, 1997

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.

Оглавление книги


Генерация: 1.537. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз