<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Change Log</title> <link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.75.2"> <link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> <link rel="up" href="../unordered.html" title="Chapter 27. Boost.Unordered"> <link rel="prev" href="rationale.html" title="Implementation Rationale"> <link rel="next" href="reference.html" title="Reference"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table cellpadding="2" width="100%"><tr> <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td> <td align="center"><a href="../../../index.html">Home</a></td> <td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> <td align="center"><a href="../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav"> <a accesskey="p" href="rationale.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../unordered.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> </div> <div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> <a name="unordered.changes"></a><a class="link" href="changes.html" title="Change Log"> Change Log</a> </h2></div></div></div> <a name="unordered.changes.review_version"></a><h3> <a name="id3031149"></a> <a class="link" href="changes.html#unordered.changes.review_version">Review Version</a> </h3> <p> Initial review version, for the review conducted from 7th December 2007 to 16th December 2007. </p> <a name="unordered.changes.1_35_0_add_on___31st_march_2008"></a><h3> <a name="id3031175"></a> <a class="link" href="changes.html#unordered.changes.1_35_0_add_on___31st_march_2008">1.35.0 Add-on - 31st March 2008</a> </h3> <p> Unofficial release uploaded to vault, to be used with Boost 1.35.0. Incorporated many of the suggestions from the review. </p> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> Improved portability thanks to Boost regression testing. </li> <li class="listitem"> Fix lots of typos, and clearer text in the documentation. </li> <li class="listitem"> Fix floating point to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code> conversion when calculating sizes from the max load factor, and use <code class="computeroutput"><span class="keyword">double</span></code> in the calculation for greater accuracy. </li> <li class="listitem"> Fix some errors in the examples. </li> </ul></div> <a name="unordered.changes.boost_1_36_0"></a><h3> <a name="id3031264"></a> <a class="link" href="changes.html#unordered.changes.boost_1_36_0">Boost 1.36.0</a> </h3> <p> First official release. </p> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> Rearrange the internals. </li> <li class="listitem"> Move semantics - full support when rvalue references are available, emulated using a cut down version of the Adobe move library when they are not. </li> <li class="listitem"> Emplace support when rvalue references and variadic template are available. </li> <li class="listitem"> More efficient node allocation when rvalue references and variadic template are available. </li> <li class="listitem"> Added equality operators. </li> </ul></div> <a name="unordered.changes.boost_1_37_0"></a><h3> <a name="id3031331"></a> <a class="link" href="changes.html#unordered.changes.boost_1_37_0">Boost 1.37.0</a> </h3> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> Rename overload of <code class="computeroutput"><span class="identifier">emplace</span></code> with hint, to <code class="computeroutput"><span class="identifier">emplace_hint</span></code> as specified in <a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2691.pdf" target="_top">n2691</a>. </li> <li class="listitem"> Provide forwarding headers at <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">unordered</span><span class="special">/</span><span class="identifier">unordered_map_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> and <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">unordered</span><span class="special">/</span><span class="identifier">unordered_set_fwd</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>. </li> <li class="listitem"> Move all the implementation inside <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">unordered</span></code>, to assist modularization and hopefully make it easier to track changes in subversion. </li> </ul></div> <a name="unordered.changes.boost_1_38_0"></a><h3> <a name="id3031510"></a> <a class="link" href="changes.html#unordered.changes.boost_1_38_0">Boost 1.38.0</a> </h3> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> Use <a href="../../../libs/utility/swap.html" target="_top"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code></a>. </li> <li class="listitem"> <a href="https://svn.boost.org/trac/boost/ticket/2237" target="_top">Ticket 2237</a>: Document that the equality and inequality operators are undefined for two objects if their equality predicates aren't equivalent. Thanks to Daniel Krügler. </li> <li class="listitem"> <a href="https://svn.boost.org/trac/boost/ticket/1710" target="_top">Ticket 1710</a>: Use a larger prime number list. Thanks to Thorsten Ottosen and Hervé Brönnimann. </li> <li class="listitem"> Use <a href="../../../libs/type_traits/doc/html/boost_typetraits/category/alignment.html" target="_top">aligned storage</a> to store the types. This changes the way the allocator is used to construct nodes. It used to construct the node with two calls to the allocator's <code class="computeroutput"><span class="identifier">construct</span></code> method - once for the pointers and once for the value. It now constructs the node with a single call to construct and then constructs the value using in place construction. </li> <li class="listitem"> Add support for C++0x initializer lists where they're available (currently only g++ 4.4 in C++0x mode). </li> </ul></div> <a name="unordered.changes.boost_1_39_0"></a><h3> <a name="id3031634"></a> <a class="link" href="changes.html#unordered.changes.boost_1_39_0">Boost 1.39.0</a> </h3> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> <a href="https://svn.boost.org/trac/boost/ticket/2756" target="_top">Ticket 2756</a>: Avoid a warning on Visual C++ 2009. </li> <li class="listitem"> Some other minor internal changes to the implementation, tests and documentation. </li> <li class="listitem"> Avoid an unnecessary copy in <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]</span></code>. </li> <li class="listitem"> <a href="https://svn.boost.org/trac/boost/ticket/2975" target="_top">Ticket 2975</a>: Fix length of prime number list. </li> </ul></div> <a name="unordered.changes.boost_1_40_0"></a><h3> <a name="id3031713"></a> <a class="link" href="changes.html#unordered.changes.boost_1_40_0">Boost 1.40.0</a> </h3> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> <a href="https://svn.boost.org/trac/boost/ticket/2975" target="_top">Ticket 2975</a>: Store the prime list as a preprocessor sequence - so that it will always get the length right if it changes again in the future. </li> <li class="listitem"> <a href="https://svn.boost.org/trac/boost/ticket/1978" target="_top">Ticket 1978</a>: Implement <code class="computeroutput"><span class="identifier">emplace</span></code> for all compilers. </li> <li class="listitem"> <a href="https://svn.boost.org/trac/boost/ticket/2908" target="_top">Ticket 2908</a>, <a href="https://svn.boost.org/trac/boost/ticket/3096" target="_top">Ticket 3096</a>: Some workarounds for old versions of borland, including adding explicit destructors to all containers. </li> <li class="listitem"> <a href="https://svn.boost.org/trac/boost/ticket/3082" target="_top">Ticket 3082</a>: Disable incorrect Visual C++ warnings. </li> <li class="listitem"> Better configuration for C++0x features when the headers aren't available. </li> <li class="listitem"> Create less buckets by default. </li> </ul></div> <a name="unordered.changes.boost_1_41_0___major_update"></a><h3> <a name="id3031825"></a> <a class="link" href="changes.html#unordered.changes.boost_1_41_0___major_update">Boost 1.41.0 - Major update</a> </h3> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> The original version made heavy use of macros to sidestep some of the older compilers' poor template support. But since I no longer support those compilers and the macro use was starting to become a maintenance burden it has been rewritten to use templates instead of macros for the implementation classes. </li> <li class="listitem"> The container objcet is now smaller thanks to using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">compressed_pair</span></code> for EBO and a slightly different function buffer - now using a bool instead of a member pointer. </li> <li class="listitem"> Buckets are allocated lazily which means that constructing an empty container will not allocate any memory. </li> </ul></div> <a name="unordered.changes.boost_1_42_0"></a><h3> <a name="id3031898"></a> <a class="link" href="changes.html#unordered.changes.boost_1_42_0">Boost 1.42.0</a> </h3> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> Support instantiating the containers with incomplete value types. </li> <li class="listitem"> Reduced the number of warnings (mostly in tests). </li> <li class="listitem"> Improved codegear compatibility. </li> <li class="listitem"> <a href="http://svn.boost.org/trac/boost/ticket/3693" target="_top">Ticket 3693</a>: Add <code class="computeroutput"><span class="identifier">erase_return_void</span></code> as a temporary workaround for the current <code class="computeroutput"><span class="identifier">erase</span></code> which can be inefficient because it has to find the next element to return an iterator. </li> <li class="listitem"> Add templated find overload for compatible keys. </li> <li class="listitem"> <a href="http://svn.boost.org/trac/boost/ticket/3773" target="_top">Ticket 3773</a>: Add missing <code class="computeroutput"><span class="identifier">std</span></code> qualifier to <code class="computeroutput"><span class="identifier">ptrdiff_t</span></code>. </li> <li class="listitem"> Some code formatting changes to fit almost all lines into 80 characters. </li> </ul></div> <a name="unordered.changes.boost_1_43_0"></a><h3> <a name="id3032025"></a> <a class="link" href="changes.html#unordered.changes.boost_1_43_0">Boost 1.43.0</a> </h3> <div class="itemizedlist"><ul class="itemizedlist" type="disc"> <li class="listitem"> <a href="http://svn.boost.org/trac/boost/ticket/3966" target="_top">Ticket 3966</a>: <code class="computeroutput"><span class="identifier">erase_return_void</span></code> is now <code class="computeroutput"><span class="identifier">quick_erase</span></code>, which is the <a href="http://home.roadrunner.com/~hinnant/issue_review/lwg-active.html#579" target="_top">current forerunner for resolving the slow erase by iterator</a>, although there's a strong possibility that this may change in the future. The old method name remains for backwards compatibility but is considered deprecated and will be removed in a future release. </li> <li class="listitem"> Use Boost.Exception. </li> <li class="listitem"> Stop using deprecated <code class="computeroutput"><span class="identifier">BOOST_HAS_</span><span class="special">*</span></code> macros. </li> </ul></div> </div> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <td align="left"></td> <td align="right"><div class="copyright-footer">Copyright © 2003, 2004 Jeremy B. Maitin-Shepard<br>Copyright © 2005-2008 Daniel James<p> Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) </p> </div></td> </tr></table> <hr> <div class="spirit-nav"> <a accesskey="p" href="rationale.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../unordered.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a> </div> </body> </html>