diff --git a/hash/doc/hash.qbk b/hash/doc/hash.qbk
index 5c925e6..7fce700 100644
--- a/hash/doc/hash.qbk
+++ b/hash/doc/hash.qbk
@@ -1,7 +1,7 @@
[library Boost.Functional/Hash
[authors [James, Daniel]]
[copyright 2005 Daniel James]
- [purpose Extendible hash function object]
+ [purpose Extendible TR1 hash function object]
[category higher-order]
[id hash]
[dirname hash]
@@ -66,7 +66,7 @@ __issues__, this adds support for:
When using a hash index with __multi-index-short__, you don't need to do
anything to use __boost_hash as it uses it by default.
To find out how to use a user-defined type, read the
-[link hash.custom section on extending boost::hash].
+[link hash.custom section on extending boost::hash for a custom data type].
If your standard library supplies its own implementation of the unordered
associative containers and you wish to use
@@ -182,6 +182,7 @@ The full example can be found in:
[@../../libs/functional/hash/examples/books.cpp /libs/functional/hash/examples/books.hpp]
and
[@../../libs/functional/hash/examples/books.cpp /libs/functional/hash/examples/books.cpp].
+
[blurb
When writing a hash function, first look at how the equality function works.
Objects that are equal must generate the same hash value.
@@ -245,14 +246,14 @@ When using __hash_combine the order of the
calls matters.
std::size_t seed = 0;
- __hash_combine(seed, 1);
- __hash_combine(seed, 2);
+ boost::hash_combine(seed, 1);
+ boost::hash_combine(seed, 2);
results in a different seed to:
std::size_t seed = 0;
- __hash_combine(seed, 2);
- __hash_combine(seed, 1);
+ boost::hash_combine(seed, 2);
+ boost::hash_combine(seed, 1);
If you are calculating a hash value for data where the order of the data
doesn't matter in comparisons (e.g. a set) you will have to ensure that the
@@ -887,11 +888,42 @@ return seed;
[/ Remove this comment and everything goes wrong! ;) ]
[endsect]
+[section:links Links]
+
+[*A Proposal to Add Hash Tables to the Standard Library]\n
+[@http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1456.html]\n
+The hash table proposal explains much of the design. The hash function object
+is discussed in Section D.
+
+[*The C++ Standard Library Technical Report.]\n
+[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1745.pdf]\n
+Contains the hash function specification in section 6.3.2.
+
+[*Library Extension Technical Report Issues List.]\n
+[@http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf]\n
+The library implements the extension described in Issue 6.18.
+
+[*Methods for Identifying Versioned and Plagiarised Documents]\n
+Timothy C. Hoad, Justin Zobel\n
+[@http://www.cs.rmit.edu.au/~jz/fulltext/jasist-tch.pdf]\n
+Contains the hash function that __hash_combine is based on.
+
+[endsect]
+
[section:acknowledgements Acknowledgements]
This library is based on the design by Peter Dimov. During the inital development
Joaquín M López Muñoz made many useful suggestions and contributed fixes.
+The review was managed by Thorsten Ottosen, and the library reviewed by:
+David Abrahams, Alberto Barbati, Topher Cooper, Caleb Epstein, Dave Harris,
+Chris Jefferson, Bronek Kozicki, John Maddock, Tobias Swinger,Jaap Suter
+and Rob Stewart.
+
+The implementation of the hash function for pointers is based on suggestions
+made by Alberto Barbati and Dave Harris. Dave Harris also suggested an
+important improvement to __hash_combine that was taken up.
+
The original implementation came from Jeremy B. Maitin-Shepard's hash table
library, although this is a complete rewrite.