blob: 675fc4d7c87a8483f0a142693ccee096fed407b2 [file] [log] [blame]
<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&#160;27.&#160;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="id3025247"></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="id3025273"></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="id3025362"></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="id3025429"></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">&lt;</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">&gt;</span></code>
and <code class="computeroutput"><span class="special">&lt;</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">&gt;</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="id3025608"></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&#252;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&#233; Br&#246;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="id3025732"></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="id3025810"></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="id3025922"></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="id3025995"></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="id3026122"></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>
<a name="unordered.changes.boost_1_45_0"></a><h3>
<a name="id3026217"></a>
<a class="link" href="changes.html#unordered.changes.boost_1_45_0">Boost 1.45.0</a>
</h3>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
Fix a bug when inserting into an <code class="computeroutput"><span class="identifier">unordered_map</span></code>
or <code class="computeroutput"><span class="identifier">unordered_set</span></code> using
iterators which returns <code class="computeroutput"><span class="identifier">value_type</span></code>
by copy.
</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 &#169; 2003, 2004 Jeremy B. Maitin-Shepard<br>Copyright &#169; 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>