5.2: - Major modifications: * Use of #include_next to access native platform/compiler headers when the preprocessor support it. Enhance STLport portability as native header path do not have to be adapted each time the header structure is modified. * Yet a modification of the include schema in all C++ Standard headers. Now _STLP_WHOLE_NATIVE_STD mode works as expected, used in conjonction with _STLP_DONT_REDEFINE_STD it is possible to use STLport in stlport namespace at the same time as using native library in std namespace. * Use of the gcc visibility feature for gcc versions after 4.0. * For builds under Windows, STLport now adapt to the PSDK used to build it. It should be the same as the one used when building an application using the STLport libs. A compatibility detection mecanism has been implemented in order to report not homogeneous build environment with a link error rather than undefined runtime error. - Enhancements: * Use of malloc based allocator on system having GlibC 2.3 and later, keep node allocator for others. * Delay instanciation of type traits type in vector and deque implementation to be able to use some of the nested types like iterator even if type used to instanciate the container is not completely defined. * Container pointer specialization feature now works even with incomplete types thanks to use of partial template specialization. 5.1: - Major modifications * Folder architecture: All configuration files are now in stlport/stl/config folder. stlport/stl_user_config.h renamed and moved as stlport/stl/config/user_config.h. stlport/stl/_site_config.h renamed and moved as stlport/stl/config/hosts.h. STLport configuration now also try to seperate platform configuration from compiler one. * Allocators implementation is in src folder to enhance encapsulation. Default allocator when using STLport without building it (_STLP_NO_IOSTREAMS) is the simple new/delete based allocator, node allocator is the default when building the lib. * Access to native headers has been modified to make STLport less dependant on native headers internal includes, should improve portability. * Segregation of headers has been improved. You might have to add now missing functional or algorithm Standard headers include in your code. - Enhancements * Support enhancements: - Borland compilers starting with the free one (5.5.1) - HP aC++/ANSI C B3910B A.06.06 - Visual Studio 2005 for Windows CE - Use of intrinsic type traits support of Visual Studio 2005 * Improved meta programming techniques especially in uninitialized_* algorithms. If you need a vector of null pointer prefer to write 'vector<void*> v(10)' rather than 'vector<void*> v(10, (void*)0)'. * Fully functional pointer specialization feature (_STLP_USE_PTR_SPECIALIZATIONS). * Extension of template search methods in associative and hashed container has been completed. * STL safe mode: Now detect badly implemented strict weak ordering functors, assert if a < b && b < a. Same for equivalent functor used in hash container implementation, assert if a <=> b but !(b <=> a). * Improved locale creation delay on Windows platform. * STL containers implementation now correctly handle allocators with state. This kind of allocator has to overload swap method if any specific action has to be made when swaping 2 instances. * STLport is ready for safe string functions *_s (_STLP_USE_SAFE_STRING_FUNCTIONS) * Many bug fixes, see etc/ChangeLog-5.1. 5.0: - Major modifications * No more wrapper mode: you can use STLport iostreams or no iostreams at all. * _STLP_NO_CUSTOM_IO now also hide basic_string implementation * internal namespace schema has been modified, see doc folder for additionnal informations. - Enhancements * Support of many modern C++ compilers and platforms - gcc 3.4.0 and later - MSVC .Net 2002, 2003 and MSVC 2005 Beta - Windows CE see build/test/unit/STATUS for a complete list of tested platforms/compilers * Move semantic: vector or deque of any other STL containers are using move semantic when resized or modified rather than copy. * New checks in safe STL mode like null pointer or check of iterator range pass to container constructors. * Expression template for string concatenation operations (available throught the _STLP_USE_TEMPLATE_EXPRESSION config option) * Implementation of the short string optimization trick, basic_string have a small static buffer in this case. * STL containers vector, deque, list and slist pointer specialization to limit code bloats (see _STLP_USE_PTR_SPECIALIZATIONS on config file) * Use of boost type_traits rather than internal equivalent when requested (see _STLP_USE_BOOST_SUPPORT in config file) * set/multiset, or map/multimap iterators cannot be compared anymore. * unordered_set, unordered_multiset, unordered_map, unordered_multimap hash containers implementation specified in the TR1 document. * Thanks to the _STLP_LEAKS_PEDANTIC config option you can ask STLport to clean its memory pool before being unloaded, useful to only detect real memory leak problems. * Creation of configuration scripts to make STLport configuration easier. * Improvment of some algorithm like search_n or stable_sort. * Ported to 64 bits platforms. * Large file ( > 4 Go) stream support on Win32 platform.