1
2[/ Copyright 2005-2008 Daniel James.
3 / Distributed under the Boost Software License, Version 1.0. (See accompanying
4 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
5
6[template ticket[number]'''<ulink url="https://svn.boost.org/trac/boost/ticket/'''[number]'''">'''#[number]'''</ulink>''']
7
8[section:changes Change Log]
9
10[h2 Boost 1.33.0]
11
12* Initial Release
13
14[h2 Boost 1.33.1]
15
16* Fixed the points example, as pointed out by 沈慧峰.
17
18[h2 Boost 1.34.0]
19
20* Use declarations for standard classes, so that the library
21  doesn't need to include all of their headers
22* Deprecated the `<boost/functional/hash/*.hpp>` headers. Now a single header,
23  <[headerref boost/functional/hash.hpp]> is used.
24* Add support for the `BOOST_HASH_NO_EXTENSIONS` macro, which
25  disables the extensions to TR1.
26
27* Minor improvements to the hash functions for floating point numbers.
28* Update the portable example to hopefully be more generally portable.
29
30[h2 Boost 1.34.1]
31
32* [@http://svn.boost.org/trac/boost/ticket/952 Ticket 952]:
33  Suppress incorrect 64-bit warning on Visual C++.
34
35[h2 Boost 1.35.0]
36
37* Support for `long long`, `std::complex`.
38* Improved algorithm for hashing floating point numbers:
39  * Improved portablity, as described by Daniel Krügler in
40    [@http://lists.boost.org/boost-users/2005/08/13418.php
41    a post to the boost users list].
42  * Fits more information into each combine loop, which can reduce the
43    the number of times combine is called and hopefully give a better
44    quality hash function.
45  * Improved the algorithm for hashing floating point numbers.
46  * On Cygwin use a binary hash function for floating point numbers, as
47    Cygwin doesn't have decent floating point functions for `long double`.
48  * Never uses `fpclass` which doesn't support `long double`.
49  * [@http://svn.boost.org/trac/boost/ticket/1064 Ticket 1064]:
50    Removed unnecessary use of `errno`.
51* Explicitly overload for more built in types.
52* Minor improvements to the documentation.
53* A few bug and warning fixes:
54  * [@http://svn.boost.org/trac/boost/ticket/1509 Ticket 1509]:
55    Suppress another Visual C++ warning.
56  * Some workarounds for the Sun compilers.
57
58[h2 Boost 1.36.0]
59
60* Stop using OpenBSD's dodgy `std::numeric_limits`.
61* Using the boost typedefs for `long long` and `unsigned long long`.
62* Move the extensions into their own header.
63
64[h2 Boost 1.37.0]
65
66* [@http://svn.boost.org/trac/boost/ticket/2264 Ticket 2264]:
67  In Visual C++, always use C99 float functions for `long double` and `float` as
68  the C++ overloads aren't always availables.
69
70[h2 Boost 1.38.0]
71
72* Changed the warnings in the deprecated headers from 1.34.0 to errors. These
73  will be removed in a future version of Boost.
74* Moved detail headers out of `boost/container_hash/detail`, since they are part of
75  functional/hash, not container_hash. `boost/container_hash/detail/container_fwd.hpp`
76  has been moved to `boost/detail/container_fwd.hpp` as it's used outside of
77  this library, the others have been moved to `boost/functional/hash/detail`.
78
79[h2 Boost 1.39.0]
80
81* Move the hash_fwd.hpp implementation into the hash subdirectory, leaving a
82  forwarding header in the old location. You should still use the old location,
83  the new location is mainly for implementation and possible modularization.
84* [@https://svn.boost.org/trac/boost/ticket/2412 Ticket 2412]: Removed deprecated
85  headers.
86* [@https://svn.boost.org/trac/boost/ticket/2957 Ticket 2957]: Fix configuration
87  for vxworks.
88
89[h2 Boost 1.40.0]
90
91* Automatically configure the float functions using template metaprogramming
92  instead of trying to configure every possibility manually.
93* Workaround for when STLport doesn't support long double.
94
95[h2 Boost 1.42.0]
96
97* Reduce the number of warnings for Visual C++ warning level 4.
98* Some code formatting changes to fit lines into 80 characters.
99* Rename an internal namespace.
100
101[h2 Boost 1.43.0]
102
103* [@https://svn.boost.org/trac/boost/ticket/3866 Ticket 3866]:
104  Don't foward declare containers when using gcc's parallel library,
105  allow user to stop forward declaration by defining the
106  `BOOST_DETAIL_NO_CONTAINER_FWD` macro.
107* [@https://svn.boost.org/trac/boost/ticket/4038 Ticket 4038]:
108  Avoid hashing 0.5 and 0 to the same number.
109* Stop using deprecated `BOOST_HAS_*` macros.
110
111[h2 Boost 1.44.0]
112
113* Add option to prevent implicit conversions when calling `hash_value` by
114  defining `BOOST_HASH_NO_IMPLICIT_CASTS`. When using `boost::hash`
115  for a type that does not have `hash_value` declared but does have
116  an implicit conversion to a type that does, it would use that
117  implicit conversion to hash it. Which can sometimes go very wrong,
118  e.g. using a conversion to bool and only hashing to 2 possible
119  values. Since fixing this is a breaking change and was only
120  approached quite late in the release cycle with little discussion
121  it's opt-in for now. This, or something like it, will become the
122  default in a future version.
123
124[h2 Boost 1.46.0]
125
126* Avoid warning due with gcc's `-Wconversion` flag.
127
128[h2 Boost 1.50.0]
129
130* [@http://svn.boost.org/trac/boost/ticket/6771 Ticket 6771]:
131  Avoid gcc's `-Wfloat-equal` warning.
132* [@http://svn.boost.org/trac/boost/ticket/6806 Ticket 6806]:
133  Support `std::array` and `std::tuple` when available.
134* Add deprecation warning to the long deprecated
135  `boost/container_hash/detail/container_fwd.hpp`.
136
137[h2 Boost 1.51.0]
138
139* Support the standard smart pointers.
140* `hash_value` now implemented using SFINAE to avoid implicit casts to built
141  in types when calling it.
142* Updated to use the new config macros.
143
144[h2 Boost 1.52.0]
145
146* Restore `enum` support, which was accidentally removed in the last version.
147* New floating point hasher - will hash the binary representation on more
148  platforms, which should be faster.
149
150[h2 Boost 1.53.0]
151
152* Add support for `boost::int128_type` and `boost::uint128_type` where
153  available - currently only `__int128` and `unsigned __int128` on some
154  versions of gcc.
155* On platforms that are known to have the standard floating point functions,
156  don't use automatic detection - which can break if there are ambiguous
157  overloads.
158* Fix undefined behaviour when using the binary float hash (Thomas Heller).
159
160[h2 Boost 1.54.0]
161
162* [@https://svn.boost.org/trac/boost/ticket/7957 Ticket 7957]:
163  Fixed a typo.
164
165[h2 Boost 1.55.0]
166
167* Simplify a SFINAE check so that it will hopefully work on Sun 5.9
168  ([ticket 8822]).
169* Suppress Visual C++ infinite loop warning ([ticket 8568]).
170
171[h2 Boost 1.56.0]
172
173* Removed some Visual C++ 6 workarounds.
174* Ongoing work on improving `hash_combine`. This changes the combine function
175  which was previously defined in the reference documentation.
176
177[h2 Boost 1.58.0]
178
179* Fixed strict aliasing violation
180  ([@https://github.com/boostorg/container_hash/pull/3 GitHub #3]).
181
182[h2 Boost 1.63.0]
183
184* Fixed some warnings.
185* Only define hash for `std::wstring` when we know we have a `wchar_t`.
186  Otherwise there's a compile error as there's no overload for hashing
187  the characters in wide strings ([ticket 8552]).
188
189[h2 Boost 1.64.0]
190
191* Fix for recent versions of Visual C++ which have removed `std::unary_function`
192  and `std::binary_function` ([ticket 12353]).
193
194[h2 Boost 1.65.0]
195
196* Support for `char16_t`, `char32_t`, `u16string`, `u32string`
197
198[h2 Boost 1.66.0]
199
200* Avoid float comparison warning when using Clang - this workaround was
201  already in place for GCC, and was used when Clang pretends to be GCC,
202  but the warning was appearing when running Clang in other contexts.
203
204[h2 Boost 1.67.0]
205
206* Moved library into its own module, `container_hash`.
207* Moved headers for new module name, now at:
208  `<boost/container_hash/hash.hpp>`,
209  `<boost/container_hash/hash_fwd.hpp>`,
210  `<boost/container_hash/extensions.hpp>`.
211* Added forwarding headers to support the old headers locations.
212* Support `std::string_view`, `std::error_code`, `std::error_condition`
213  `std::optional`, `std::variant`, `std::monostate` where available.
214* Update include paths from other Boost libraries.
215* Manually write out tuple overloads, rather than using the
216  preprocessor to generate them. Should improve usability, due
217  to better error messages, and easier debugging.
218* Fix tutorial example ([ticket 11017]).
219* Quick fix for hashing `vector<bool>` when using libc++. Will try to introduce
220  a more general fix in the next release.
221
222[endsect]
223