Brian Silverman | b67fe79 | 2018-08-05 00:11:17 -0700 | [diff] [blame^] | 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] |