Boost logo

Boost-Commit :

From: daniel_james_at_[hidden]
Date: 2008-06-11 20:27:18


Author: danieljames
Date: 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
New Revision: 46343
URL: http://svn.boost.org/trac/boost/changeset/46343

Log:
Merge all hash changes from trunk.

Added:
   branches/release/boost/functional/hash/extensions.hpp
      - copied unchanged from r46338, /trunk/boost/functional/hash/extensions.hpp
Text files modified:
   branches/release/boost/functional/detail/container_fwd.hpp | 2
   branches/release/boost/functional/detail/float_functions.hpp | 2
   branches/release/boost/functional/detail/hash_float.hpp | 81 +++++++++--------
   branches/release/boost/functional/hash.hpp | 3
   branches/release/boost/functional/hash/deque.hpp | 2
   branches/release/boost/functional/hash/hash.hpp | 184 ++-------------------------------------
   branches/release/boost/functional/hash/list.hpp | 2
   branches/release/boost/functional/hash/map.hpp | 2
   branches/release/boost/functional/hash/pair.hpp | 2
   branches/release/boost/functional/hash/set.hpp | 2
   branches/release/boost/functional/hash/vector.hpp | 2
   branches/release/boost/functional/hash_fwd.hpp | 2
   branches/release/libs/functional/hash/doc/Jamfile.v2 | 27 +++++
   branches/release/libs/functional/hash/doc/changes.qbk | 46 ++++++++-
   branches/release/libs/functional/hash/doc/disable.qbk | 2
   branches/release/libs/functional/hash/doc/hash.qbk | 2
   branches/release/libs/functional/hash/doc/intro.qbk | 10 +
   branches/release/libs/functional/hash/doc/links.qbk | 2
   branches/release/libs/functional/hash/doc/portability.qbk | 2
   branches/release/libs/functional/hash/doc/ref.xml | 9 +
   branches/release/libs/functional/hash/doc/thanks.qbk | 2
   branches/release/libs/functional/hash/doc/tutorial.qbk | 2
   branches/release/libs/functional/hash/examples/books.cpp | 2
   branches/release/libs/functional/hash/examples/books.hpp | 2
   branches/release/libs/functional/hash/examples/portable.cpp | 2
   branches/release/libs/functional/hash/test/Jamfile.v2 | 2
   branches/release/libs/functional/hash/test/compile_time.hpp | 2
   branches/release/libs/functional/hash/test/config.hpp | 2
   branches/release/libs/functional/hash/test/container_fwd_test.cpp | 4
   branches/release/libs/functional/hash/test/hash_built_in_array_test.cpp | 18 +-
   branches/release/libs/functional/hash/test/hash_complex_test.cpp | 12 +-
   branches/release/libs/functional/hash/test/hash_custom_test.cpp | 18 +-
   branches/release/libs/functional/hash/test/hash_deprecated_headers.cpp | 4
   branches/release/libs/functional/hash/test/hash_deque_test.cpp | 8
   branches/release/libs/functional/hash/test/hash_float_test.cpp | 6
   branches/release/libs/functional/hash/test/hash_float_test.hpp | 146 +++++++++++++++---------------
   branches/release/libs/functional/hash/test/hash_friend_test.cpp | 18 +-
   branches/release/libs/functional/hash/test/hash_function_pointer_test.cpp | 34 +++---
   branches/release/libs/functional/hash/test/hash_fwd_test.hpp | 2
   branches/release/libs/functional/hash/test/hash_fwd_test_1.cpp | 20 ++--
   branches/release/libs/functional/hash/test/hash_fwd_test_2.cpp | 8
   branches/release/libs/functional/hash/test/hash_global_namespace_test.cpp | 18 +-
   branches/release/libs/functional/hash/test/hash_list_test.cpp | 8
   branches/release/libs/functional/hash/test/hash_long_double_test.cpp | 6
   branches/release/libs/functional/hash/test/hash_map_test.cpp | 8
   branches/release/libs/functional/hash/test/hash_map_test.hpp | 10 +-
   branches/release/libs/functional/hash/test/hash_no_ext_fail_test.cpp | 4
   branches/release/libs/functional/hash/test/hash_no_ext_macro_1.cpp | 10 +-
   branches/release/libs/functional/hash/test/hash_no_ext_macro_2.cpp | 10 +-
   branches/release/libs/functional/hash/test/hash_number_test.cpp | 76 ++++++++--------
   branches/release/libs/functional/hash/test/hash_pointer_test.cpp | 20 ++--
   branches/release/libs/functional/hash/test/hash_range_test.cpp | 30 +++---
   branches/release/libs/functional/hash/test/hash_sequence_test.hpp | 10 +-
   branches/release/libs/functional/hash/test/hash_set_test.cpp | 8
   branches/release/libs/functional/hash/test/hash_set_test.hpp | 10 +-
   branches/release/libs/functional/hash/test/hash_string_test.cpp | 32 +++---
   branches/release/libs/functional/hash/test/hash_value_array_test.cpp | 16 +-
   branches/release/libs/functional/hash/test/hash_vector_test.cpp | 8
   branches/release/libs/functional/hash/test/link_ext_test.cpp | 6
   branches/release/libs/functional/hash/test/link_no_ext_test.cpp | 11 +-
   branches/release/libs/functional/hash/test/link_test.cpp | 4
   branches/release/libs/functional/hash/test/link_test_2.cpp | 2
   62 files changed, 455 insertions(+), 552 deletions(-)

Modified: branches/release/boost/functional/detail/container_fwd.hpp
==============================================================================
--- branches/release/boost/functional/detail/container_fwd.hpp (original)
+++ branches/release/boost/functional/detail/container_fwd.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/boost/functional/detail/float_functions.hpp
==============================================================================
--- branches/release/boost/functional/detail/float_functions.hpp (original)
+++ branches/release/boost/functional/detail/float_functions.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/boost/functional/detail/hash_float.hpp
==============================================================================
--- branches/release/boost/functional/detail/hash_float.hpp (original)
+++ branches/release/boost/functional/detail/hash_float.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -38,7 +38,7 @@
 
 // STLport
 #elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-// _fpclass and fpclassify aren't good enough on STLport.
+// fpclassify aren't good enough on STLport.
 
 // GNU libstdc++ 3
 #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
@@ -50,19 +50,47 @@
 // Dinkumware Library, on Visual C++
 #elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
 
-// Not using _fpclass because it causes a warning about a conversion
-// from 'long double' to 'double'. Pity.
-//
-//# if defined(BOOST_MSVC)
-//# define BOOST_HASH_USE_FPCLASS
-//# endif
+// Not using _fpclass because it is only available for double.
 
 #endif
 
+// On OpenBSD, numeric_limits is not reliable for long doubles, but
+// the macros defined in <float.h> are.
+
+#if defined(__OpenBSD__)
+#include <float.h>
+#endif
+
 namespace boost
 {
     namespace hash_detail
     {
+ template <class T>
+ struct limits : std::numeric_limits<T> {};
+
+#if defined(__OpenBSD__)
+ template <>
+ struct limits<long double>
+ : std::numeric_limits<long double>
+ {
+ static long double epsilon() {
+ return LDBL_EPSILON;
+ }
+
+ static long double (max)() {
+ return LDBL_MAX;
+ }
+
+ static long double (min)() {
+ return LDBL_MIN;
+ }
+
+ BOOST_STATIC_CONSTANT(int, digits = LDBL_MANT_DIG);
+ BOOST_STATIC_CONSTANT(int, max_exponent = LDBL_MAX_EXP);
+ BOOST_STATIC_CONSTANT(int, min_exponent = LDBL_MIN_EXP);
+ };
+#endif // __OpenBSD__
+
         inline void hash_float_combine(std::size_t& seed, std::size_t value)
         {
             seed ^= value + (seed<<6) + (seed>>2);
@@ -107,29 +135,28 @@
             // sign with the exponent.
             if(v < 0) {
                 v = -v;
- exp += std::numeric_limits<T>::max_exponent -
- std::numeric_limits<T>::min_exponent;
+ exp += limits<T>::max_exponent -
+ limits<T>::min_exponent;
             }
 
             // The result of frexp is always between 0.5 and 1, so its
             // top bit will always be 1. Subtract by 0.5 to remove that.
             v -= T(0.5);
             v = boost::hash_detail::call_ldexp(v,
- std::numeric_limits<std::size_t>::digits + 1);
+ limits<std::size_t>::digits + 1);
             std::size_t seed = static_cast<std::size_t>(v);
             v -= seed;
 
             // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1;
             std::size_t const length
- = (std::numeric_limits<T>::digits *
- boost::static_log2<std::numeric_limits<T>::radix>::value
- - 1)
- / std::numeric_limits<std::size_t>::digits;
+ = (limits<T>::digits *
+ boost::static_log2<limits<T>::radix>::value - 1)
+ / limits<std::size_t>::digits;
 
             for(std::size_t i = 0; i != length; ++i)
             {
                 v = boost::hash_detail::call_ldexp(v,
- std::numeric_limits<std::size_t>::digits);
+ limits<std::size_t>::digits);
                 std::size_t part = static_cast<std::size_t>(v);
                 v -= part;
                 hash_float_combine(seed, part);
@@ -160,28 +187,6 @@
                 BOOST_ASSERT(0);
                 return 0;
             }
-#elif defined(BOOST_HASH_USE_FPCLASS)
- switch(_fpclass(v)) {
- case _FPCLASS_NZ:
- case _FPCLASS_PZ:
- return 0;
- case _FPCLASS_PINF:
- return (std::size_t)(-1);
- case _FPCLASS_NINF:
- return (std::size_t)(-2);
- case _FPCLASS_SNAN:
- case _FPCLASS_QNAN:
- return (std::size_t)(-3);
- case _FPCLASS_NN:
- case _FPCLASS_ND:
- return float_hash_impl(v);
- case _FPCLASS_PD:
- case _FPCLASS_PN:
- return float_hash_impl(v);
- default:
- BOOST_ASSERT(0);
- return 0;
- }
 #else
             return v == 0 ? 0 : float_hash_impl(v);
 #endif

Modified: branches/release/boost/functional/hash.hpp
==============================================================================
--- branches/release/boost/functional/hash.hpp (original)
+++ branches/release/boost/functional/hash.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -8,3 +8,4 @@
 // issue 6.18.
 
 #include <boost/functional/hash/hash.hpp>
+

Modified: branches/release/boost/functional/hash/deque.hpp
==============================================================================
--- branches/release/boost/functional/hash/deque.hpp (original)
+++ branches/release/boost/functional/hash/deque.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/boost/functional/hash/hash.hpp
==============================================================================
--- branches/release/boost/functional/hash/hash.hpp (original)
+++ branches/release/boost/functional/hash/hash.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -46,8 +46,8 @@
 #endif
     
 #if defined(BOOST_HAS_LONG_LONG)
- std::size_t hash_value(long long);
- std::size_t hash_value(unsigned long long);
+ std::size_t hash_value(boost::long_long_type);
+ std::size_t hash_value(boost::ulong_long_type);
 #endif
 
 #if !BOOST_WORKAROUND(__DMC__, <= 0x848)
@@ -195,12 +195,12 @@
 #endif
 
 #if defined(BOOST_HAS_LONG_LONG)
- inline std::size_t hash_value(long long v)
+ inline std::size_t hash_value(boost::long_long_type v)
     {
         return hash_detail::hash_value_signed(v);
     }
 
- inline std::size_t hash_value(unsigned long long v)
+ inline std::size_t hash_value(boost::ulong_long_type v)
     {
         return hash_detail::hash_value_unsigned(v);
     }
@@ -518,176 +518,12 @@
 }
 
 #endif // BOOST_FUNCTIONAL_HASH_HASH_HPP
-////////////////////////////////////////////////////////////////////////////////
+
+// Include this outside of the include guards in case the file is included
+// twice - once with BOOST_HASH_NO_EXTENSIONS defined, and then with it
+// undefined.
 
 #if !defined(BOOST_HASH_NO_EXTENSIONS) \
     && !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP)
-#define BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP
-
-namespace boost
-{
-
-#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
- namespace hash_detail
- {
- template <bool IsArray>
- struct call_hash_impl
- {
- template <class T>
- struct inner
- {
- static std::size_t call(T const& v)
- {
- using namespace boost;
- return hash_value(v);
- }
- };
- };
-
- template <>
- struct call_hash_impl<true>
- {
- template <class Array>
- struct inner
- {
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- static std::size_t call(Array const& v)
-#else
- static std::size_t call(Array& v)
-#endif
- {
- const int size = sizeof(v) / sizeof(*v);
- return boost::hash_range(v, v + size);
- }
- };
- };
-
- template <class T>
- struct call_hash
- : public call_hash_impl<boost::is_array<T>::value>
- ::BOOST_NESTED_TEMPLATE inner<T>
- {
- };
- }
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
- template <class T> struct hash
- : std::unary_function<T, std::size_t>
- {
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
- std::size_t operator()(T const& val) const
- {
- return hash_value(val);
- }
-#else
- std::size_t operator()(T const& val) const
- {
- return hash_detail::call_hash<T>::call(val);
- }
-#endif
- };
-
-#if BOOST_WORKAROUND(__DMC__, <= 0x848)
- template <class T, unsigned int n> struct hash<T[n]>
- : std::unary_function<T[n], std::size_t>
- {
- std::size_t operator()(const T* val) const
- {
- return boost::hash_range(val, val+n);
- }
- };
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // On compilers without partial specialization, boost::hash<T>
- // has already been declared to deal with pointers, so just
- // need to supply the non-pointer version.
-
- namespace hash_detail
- {
- template <bool IsPointer>
- struct hash_impl;
-
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
- template <>
- struct hash_impl<false>
- {
- template <class T>
- struct inner
- : std::unary_function<T, std::size_t>
- {
-#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
- std::size_t operator()(T const& val) const
- {
- return hash_value(val);
- }
-#else
- std::size_t operator()(T const& val) const
- {
- return hash_detail::call_hash<T>::call(val);
- }
-#endif
- };
- };
-
-#else // Visual C++ 6.5
-
- // There's probably a more elegant way to Visual C++ 6.5 to work
- // but I don't know what it is.
-
- template <bool IsConst>
- struct hash_impl_msvc
- {
- template <class T>
- struct inner
- : public std::unary_function<T, std::size_t>
- {
- std::size_t operator()(T const& val) const
- {
- return hash_detail::call_hash<T const>::call(val);
- }
-
- std::size_t operator()(T& val) const
- {
- return hash_detail::call_hash<T>::call(val);
- }
- };
- };
-
- template <>
- struct hash_impl_msvc<true>
- {
- template <class T>
- struct inner
- : public std::unary_function<T, std::size_t>
- {
- std::size_t operator()(T& val) const
- {
- return hash_detail::call_hash<T>::call(val);
- }
- };
- };
-
- template <class T>
- struct hash_impl_msvc2
- : public hash_impl_msvc<boost::is_const<T>::value>
- ::BOOST_NESTED_TEMPLATE inner<T> {};
-
- template <>
- struct hash_impl<false>
- {
- template <class T>
- struct inner : public hash_impl_msvc2<T> {};
- };
-
-#endif // Visual C++ 6.5
- }
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-}
-
+#include <boost/functional/hash/extensions.hpp>
 #endif
-

Modified: branches/release/boost/functional/hash/list.hpp
==============================================================================
--- branches/release/boost/functional/hash/list.hpp (original)
+++ branches/release/boost/functional/hash/list.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/boost/functional/hash/map.hpp
==============================================================================
--- branches/release/boost/functional/hash/map.hpp (original)
+++ branches/release/boost/functional/hash/map.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/boost/functional/hash/pair.hpp
==============================================================================
--- branches/release/boost/functional/hash/pair.hpp (original)
+++ branches/release/boost/functional/hash/pair.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/boost/functional/hash/set.hpp
==============================================================================
--- branches/release/boost/functional/hash/set.hpp (original)
+++ branches/release/boost/functional/hash/set.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/boost/functional/hash/vector.hpp
==============================================================================
--- branches/release/boost/functional/hash/vector.hpp (original)
+++ branches/release/boost/functional/hash/vector.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/boost/functional/hash_fwd.hpp
==============================================================================
--- branches/release/boost/functional/hash_fwd.hpp (original)
+++ branches/release/boost/functional/hash_fwd.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/libs/functional/hash/doc/Jamfile.v2
==============================================================================
--- branches/release/libs/functional/hash/doc/Jamfile.v2 (original)
+++ branches/release/libs/functional/hash/doc/Jamfile.v2 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,9 +1,28 @@
 
-# Copyright 2005 Daniel James.
+# Copyright 2005-2008 Daniel James.
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-using quickbook ;
-
 xml hash : hash.qbk ;
-boostbook standalone : hash ;
+boostbook standalone : hash :
+ <xsl:param>admon.graphics.path=images/
+ <xsl:param>navig.graphics.path=images/
+ <xsl:param>html.stylesheet=boostbook.css
+ <xsl:param>boost.root=../../../../..
+ <xsl:param>boost.libraries=../../../../libraries.htm
+ <xsl:param>chunk.first.sections=1
+ <xsl:param>chunk.section.depth=2
+ <xsl:param>generate.section.toc.level=2
+ <xsl:param>toc.section.depth=1
+ <xsl:param>toc.max.depth=1
+
+ <dependency>css
+ <dependency>images
+ ;
+
+install css : [ glob $(BOOST_ROOT)/doc/src/*.css ]
+ : <location>html ;
+install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ]
+ : <location>html/images ;
+explicit css ;
+explicit images ;

Modified: branches/release/libs/functional/hash/doc/changes.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/changes.qbk (original)
+++ branches/release/libs/functional/hash/doc/changes.qbk 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-[/ Copyright 2005-2007 Daniel James.
+[/ Copyright 2005-2008 Daniel James.
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
 
@@ -9,24 +9,54 @@
 
 * Initial Release
 
-[h2 Changes in Boost 1.33.1]
+[h2 Boost 1.33.1]
 
 * Fixed the points example, as pointed out by 沈慧峰.
 
-[h2 Changes in Boost 1.34.0]
+[h2 Boost 1.34.0]
 
 * Use declarations for standard classes, so that the library
   doesn't need to include all of their headers
 * Deprecated the `<boost/functional/hash/*.hpp>` headers. Now a single header,
   <[headerref boost/functional/hash.hpp]> is used.
 * Add support for the `BOOST_HASH_NO_EXTENSIONS` macro, which
- disables the extensions to TR1
+ disables the extensions to TR1.
+
 * Minor improvements to the hash functions for floating point numbers.
+* Update the portable example to hopefully be more generally portable.
+
+[h2 Boost 1.34.1]
+
+* [@http://svn.boost.org/trac/boost/ticket/952 Ticket 952]:
+ Suppress incorrect 64-bit warning on Visual C++.
 
-[h2 Future Developments]
+[h2 Boost 1.35.0]
 
-* A more portable hash function, as described by Daniel Krügler in
- [@http://lists.boost.org/boost-users/2005/08/13418.php a post to the boost users list].
-* Implement `hash_value` for more classes, including `std::complex`.
+* Support for `long long`, `std::complex`.
+* Improved algorithm for hashing floating point numbers:
+ * Improved portablity, as described by Daniel Krügler in
+ [@http://lists.boost.org/boost-users/2005/08/13418.php
+ a post to the boost users list].
+ * Fits more information into each combine loop, which can reduce the
+ the number of times combine is called and hopefully give a better
+ quality hash function.
+ * Improved the algorithm for hashing floating point numbers.
+ * On Cygwin use a binary hash function for floating point numbers, as
+ Cygwin doesn't have decent floating point functions for `long double`.
+ * Never uses `fpclass` which doesn't support `long double`.
+ * [@http://svn.boost.org/trac/boost/ticket/1064 Ticket 1064]:
+ Removed unnecessary use of `errno`.
+* Explicitly overload for more built in types.
+* Minor improvements to the documentation.
+* A few bug and warning fixes:
+ * [@http://svn.boost.org/trac/boost/ticket/1509 Ticket 1509]:
+ Suppress another Visual C++ warning.
+ * Some workarounds for the Sun compilers.
+
+[h2 Boost 1.36.0]
+
+* Stop using OpenBSD's dodgy `std::numeric_limits`.
+* Using the boost typedefs for `long long` and `unsigned long long`.
+* Move the extensions into their own header.
 
 [endsect]

Modified: branches/release/libs/functional/hash/doc/disable.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/disable.qbk (original)
+++ branches/release/libs/functional/hash/doc/disable.qbk 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-[/ Copyright 2005-2007 Daniel James.
+[/ Copyright 2005-2008 Daniel James.
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
 

Modified: branches/release/libs/functional/hash/doc/hash.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/hash.qbk (original)
+++ branches/release/libs/functional/hash/doc/hash.qbk 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,7 +1,7 @@
 [library Boost.Functional/Hash
     [quickbook 1.4]
     [authors [James, Daniel]]
- [copyright 2005 2006 2007 Daniel James]
+ [copyright 2005 2006 2007 2008 Daniel James]
     [purpose A TR1 hash function object that can be extended to hash user
         defined types]
     [category higher-order]

Modified: branches/release/libs/functional/hash/doc/intro.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/intro.qbk (original)
+++ branches/release/libs/functional/hash/doc/intro.qbk 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-[/ Copyright 2005-2007 Daniel James.
+[/ Copyright 2005-2008 Daniel James.
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
 
@@ -11,10 +11,13 @@
 [def __tr1__
     [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf
     TR1]]
+[def __unordered__ [link unordered Boost.Unordered]]
+[def __intrusive__ [link intrusive.unordered_set_unordered_multiset Boost.Intrusive]]
 [def __multi-index__ [@../../libs/multi_index/doc/index.html
     Boost Multi-Index Containers Library]]
 [def __multi-index-short__ [@../../libs/multi_index/doc/index.html
     Boost.MultiIndex]]
+[def __bimap__ [@../../libs/bimap/index.html Boost.Bimap]]
 [def __issues__
     [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1837.pdf
     Library Extension Technical Report Issues List]]
@@ -22,8 +25,9 @@
 [def __hash-table__ [@http://en.wikipedia.org/wiki/Hash_table hash table]]
 
 [classref boost::hash] is an implementation of the __hash-function__ object
-specified by the __tr1-full__ (TR1). It is intended for use as the default hash function
-for unordered associative containers, and the __multi-index__'s hash indexes.
+specified by the __tr1-full__ (TR1). It is the default hash function for
+__unordered__, __intrusive__'s unordered associative containers, and
+__multi-index-short__'s hash indicies and __bimap__'s `unordered_set_of`.
 
 As it is compliant with __tr1__, it will work with:
 

Modified: branches/release/libs/functional/hash/doc/links.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/links.qbk (original)
+++ branches/release/libs/functional/hash/doc/links.qbk 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-[/ Copyright 2005-2007 Daniel James.
+[/ Copyright 2005-2008 Daniel James.
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
 

Modified: branches/release/libs/functional/hash/doc/portability.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/portability.qbk (original)
+++ branches/release/libs/functional/hash/doc/portability.qbk 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-[/ Copyright 2005-2007 Daniel James.
+[/ Copyright 2005-2008 Daniel James.
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
 

Modified: branches/release/libs/functional/hash/doc/ref.xml
==============================================================================
--- branches/release/libs/functional/hash/doc/ref.xml (original)
+++ branches/release/libs/functional/hash/doc/ref.xml 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,6 +1,6 @@
 
 <!--
-Copyright Daniel James 2005-2007
+Copyright Daniel James 2005-2008
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 -->
@@ -406,6 +406,8 @@
         </method>
       </struct-specialization>
 
+ <free-function-group name="Support functions (Boost extension).">
+
       <!--
         boost::hash_combine
         -->
@@ -500,6 +502,10 @@
         </para></throws>
       </overloaded-function>
 
+ </free-function-group>
+
+ <free-function-group name="Overloadable hash implementation (Boost extension).">
+
       <!--
         boost::hash_value - integers
         -->
@@ -797,6 +803,7 @@
           </informaltable>
         </returns>
       </overloaded-function>
+ </free-function-group>
     </namespace>
   </header>
 </library-reference>

Modified: branches/release/libs/functional/hash/doc/thanks.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/thanks.qbk (original)
+++ branches/release/libs/functional/hash/doc/thanks.qbk 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-[/ Copyright 2005-2007 Daniel James.
+[/ Copyright 2005-2008 Daniel James.
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
 

Modified: branches/release/libs/functional/hash/doc/tutorial.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/tutorial.qbk (original)
+++ branches/release/libs/functional/hash/doc/tutorial.qbk 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-[/ Copyright 2005-2007 Daniel James.
+[/ Copyright 2005-2008 Daniel James.
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ]
 

Modified: branches/release/libs/functional/hash/examples/books.cpp
==============================================================================
--- branches/release/libs/functional/hash/examples/books.cpp (original)
+++ branches/release/libs/functional/hash/examples/books.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/libs/functional/hash/examples/books.hpp
==============================================================================
--- branches/release/libs/functional/hash/examples/books.hpp (original)
+++ branches/release/libs/functional/hash/examples/books.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/libs/functional/hash/examples/portable.cpp
==============================================================================
--- branches/release/libs/functional/hash/examples/portable.cpp (original)
+++ branches/release/libs/functional/hash/examples/portable.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/libs/functional/hash/test/Jamfile.v2
==============================================================================
--- branches/release/libs/functional/hash/test/Jamfile.v2 (original)
+++ branches/release/libs/functional/hash/test/Jamfile.v2 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-# Copyright 2005-2007 Daniel James.
+# Copyright 2005-2008 Daniel James.
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/libs/functional/hash/test/compile_time.hpp
==============================================================================
--- branches/release/libs/functional/hash/test/compile_time.hpp (original)
+++ branches/release/libs/functional/hash/test/compile_time.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/libs/functional/hash/test/config.hpp
==============================================================================
--- branches/release/libs/functional/hash/test/config.hpp (original)
+++ branches/release/libs/functional/hash/test/config.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/libs/functional/hash/test/container_fwd_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/container_fwd_test.cpp (original)
+++ branches/release/libs/functional/hash/test/container_fwd_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -77,7 +77,7 @@
 #include <complex>
 #include <utility>
 
-int main()
+int main(int, char**)
 {
     std::deque<int> x1;
     std::list<std::string> x2;

Modified: branches/release/libs/functional/hash/test/hash_built_in_array_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_built_in_array_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_built_in_array_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -13,7 +13,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -37,11 +37,11 @@
     int array3[2] = {2, 3};
     HASH_NAMESPACE::hash<int[2]> hasher3;
 
- BOOST_TEST(hasher1(array1)
+ BOOST_CHECK(hasher1(array1)
             == HASH_NAMESPACE::hash_range(array1, array1 + length1));
- BOOST_TEST(hasher2(array2)
+ BOOST_CHECK(hasher2(array2)
             == HASH_NAMESPACE::hash_range(array2, array2 + length2));
- BOOST_TEST(hasher3(array3)
+ BOOST_CHECK(hasher3(array3)
             == HASH_NAMESPACE::hash_range(array3, array3 + length3));
 }
 
@@ -59,17 +59,17 @@
         HASH_NAMESPACE::hash_combine(seed1, seed2);
     }
 
- BOOST_TEST(hasher(array) == seed1);
- BOOST_TEST(hasher(array) == HASH_NAMESPACE::hash_range(array, array + 3));
+ BOOST_CHECK(hasher(array) == seed1);
+ BOOST_CHECK(hasher(array) == HASH_NAMESPACE::hash_range(array, array + 3));
 }
 
 #endif // TEST_EXTENSIONS
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     array_int_test();
     two_dimensional_array_test();
 #endif
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_complex_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_complex_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_complex_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -13,7 +13,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -41,13 +41,13 @@
 {
     HASH_NAMESPACE::hash<std::complex<T> > complex_hasher;
 
- BOOST_TEST(complex_hasher(v) == complex_hasher(v));
+ BOOST_CHECK(complex_hasher(v) == complex_hasher(v));
 
     HASH_NAMESPACE::hash<T> real_hasher;
     T real = v.real();
     T imag = v.imag();
 
- BOOST_TEST(real_hasher(real) == complex_hasher(std::complex<T>(real)));
+ BOOST_CHECK(real_hasher(real) == complex_hasher(std::complex<T>(real)));
 
     if(imag != 0 && real_hasher(real) == complex_hasher(v)) {
         std::ostringstream os;
@@ -90,7 +90,7 @@
     }
 }
 
-int main()
+int test_main(int, char**)
 {
     complex_float_tests((float*) 0);
     complex_float_tests((double*) 0);
@@ -102,7 +102,7 @@
     complex_integral_tests((unsigned int*) 0);
     complex_integral_tests((unsigned long*) 0);
 
- return boost::report_errors();
+ return 0;
 }
 
 #endif

Modified: branches/release/libs/functional/hash/test/hash_custom_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_custom_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_custom_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -48,7 +48,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -59,13 +59,13 @@
 void custom_tests()
 {
     HASH_NAMESPACE::hash<test::custom> custom_hasher;
- BOOST_TEST(custom_hasher(10) == 100u);
+ BOOST_CHECK(custom_hasher(10) == 100u);
     test::custom x(55);
- BOOST_TEST(custom_hasher(x) == 550u);
+ BOOST_CHECK(custom_hasher(x) == 550u);
 
     {
         using namespace HASH_NAMESPACE;
- BOOST_TEST(custom_hasher(x) == hash_value(x));
+ BOOST_CHECK(custom_hasher(x) == hash_value(x));
     }
 
     std::vector<test::custom> custom_vector;
@@ -83,17 +83,17 @@
     HASH_NAMESPACE::hash_combine(seed2, 250u);
     HASH_NAMESPACE::hash_combine(seed2, 350u);
 
- BOOST_TEST(seed ==
+ BOOST_CHECK(seed ==
             HASH_NAMESPACE::hash_range(custom_vector.begin(), custom_vector.end()));
- BOOST_TEST(seed == seed2);
+ BOOST_CHECK(seed == seed2);
 }
 
 #endif // TEST_EXTENSIONS
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     custom_tests();
 #endif
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_deprecated_headers.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_deprecated_headers.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_deprecated_headers.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2007 Daniel James.
+// Copyright 2007-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -19,7 +19,7 @@
 
 #include <vector>
 
-int main() {
+int main(int, char**) {
     std::vector<int> v;
     boost::hash<std::vector<int> > x;
     x(v);

Modified: branches/release/libs/functional/hash/test/hash_deque_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_deque_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_deque_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -13,7 +13,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -25,11 +25,11 @@
 
 #endif // TEST_EXTENSIONS
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     deque_tests::deque_hash_integer_tests();
 #endif
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_float_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_float_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_float_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,11 +1,11 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include "hash_float_test.hpp"
 
-int main()
+int test_main(int, char**)
 {
     std::cerr<<"Compiler: "<<BOOST_COMPILER<<"\n";
     std::cerr<<"Platform: "<<BOOST_PLATFORM<<"\n";
@@ -14,5 +14,5 @@
     float_tests("float", (float*) 0);
     float_tests("double", (double*) 0);
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_float_test.hpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_float_test.hpp (original)
+++ branches/release/libs/functional/hash/test/hash_float_test.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -11,7 +11,7 @@
 # include <boost/functional/hash.hpp>
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #include <cmath>
 #include <boost/limits.hpp>
@@ -29,12 +29,12 @@
     std::cerr<<"\n"
         <<"Testing " BOOST_STRINGIZE(HASH_NAMESPACE) "::hash<"<<name<<">\n"
         <<"\n"
- <<"std::numeric_limits<T>::digits = "
- <<std::numeric_limits<T>::digits<<"\n"
- <<"std::numeric_limits<int>::digits = "
- <<std::numeric_limits<int>::digits<<"\n"
- <<"std::numeric_limits<std::size_t>::digits = "
- <<std::numeric_limits<std::size_t>::digits<<"\n"
+ <<"boost::hash_detail::limits<T>::digits = "
+ <<boost::hash_detail::limits<T>::digits<<"\n"
+ <<"boost::hash_detail::limits<int>::digits = "
+ <<boost::hash_detail::limits<int>::digits<<"\n"
+ <<"boost::hash_detail::limits<std::size_t>::digits = "
+ <<boost::hash_detail::limits<std::size_t>::digits<<"\n"
         <<"\n"
         ;
 
@@ -43,11 +43,11 @@
     T zero = 0;
     T minus_zero = (T) -1 * zero;
 
- BOOST_TEST(zero == minus_zero);
- BOOST_TEST(x1(zero) == x1(minus_zero));
+ BOOST_CHECK(zero == minus_zero);
+ BOOST_CHECK(x1(zero) == x1(minus_zero));
 
- BOOST_TEST(x1(zero) == HASH_NAMESPACE::hash_value(zero));
- BOOST_TEST(x1(minus_zero) == HASH_NAMESPACE::hash_value(minus_zero));
+ BOOST_CHECK(x1(zero) == HASH_NAMESPACE::hash_value(zero));
+ BOOST_CHECK(x1(minus_zero) == HASH_NAMESPACE::hash_value(minus_zero));
 
     using namespace std;
 
@@ -55,33 +55,33 @@
 #if defined(__BORLANDC__)
     std::cerr<<"Not running infinity checks on Borland, as it causes it to crash.\n";
 #else
- if(std::numeric_limits<T>::has_infinity) {
+ if(boost::hash_detail::limits<T>::has_infinity) {
         T infinity = -log(zero);
         T infinity2 = (T) 1. / zero;
         T infinity3 = (T) -1. / minus_zero;
- T infinity4 = std::numeric_limits<T>::infinity();
+ T infinity4 = boost::hash_detail::limits<T>::infinity();
 
         T minus_infinity = log(zero);
         T minus_infinity2 = (T) -1. / zero;
         T minus_infinity3 = (T) 1. / minus_zero;
 
- BOOST_TEST(x1(infinity) == HASH_NAMESPACE::hash_value(infinity));
- BOOST_TEST(x1(minus_infinity)
+ BOOST_CHECK(x1(infinity) == HASH_NAMESPACE::hash_value(infinity));
+ BOOST_CHECK(x1(minus_infinity)
                 == HASH_NAMESPACE::hash_value(minus_infinity));
 
         if(infinity == infinity2)
- BOOST_TEST(x1(infinity) == x1(infinity2));
+ BOOST_CHECK(x1(infinity) == x1(infinity2));
         if(infinity == infinity3)
- BOOST_TEST(x1(infinity) == x1(infinity3));
+ BOOST_CHECK(x1(infinity) == x1(infinity3));
         if(infinity == infinity4)
- BOOST_TEST(x1(infinity) == x1(infinity4));
+ BOOST_CHECK(x1(infinity) == x1(infinity4));
 
         if(minus_infinity == minus_infinity2)
- BOOST_TEST(x1(minus_infinity) == x1(minus_infinity2));
+ BOOST_CHECK(x1(minus_infinity) == x1(minus_infinity2));
         if(minus_infinity == minus_infinity3)
- BOOST_TEST(x1(minus_infinity) == x1(minus_infinity3));
+ BOOST_CHECK(x1(minus_infinity) == x1(minus_infinity3));
 
- BOOST_TEST(infinity != minus_infinity);
+ BOOST_CHECK(infinity != minus_infinity);
 
         if(x1(infinity) == x1(minus_infinity)) {
             std::cerr<<"x1(infinity) == x1(-infinity) == "<<x1(infinity)<<"\n";
@@ -89,46 +89,46 @@
 
         // This should really be 'has_denorm == denorm_present' but some
         // compilers don't have 'denorm_present'. See also a later use.
- if(std::numeric_limits<T>::has_denorm) {
- if(x1(std::numeric_limits<T>::denorm_min()) == x1(infinity)) {
+ if(boost::hash_detail::limits<T>::has_denorm) {
+ if(x1(boost::hash_detail::limits<T>::denorm_min()) == x1(infinity)) {
                 std::cerr<<"x1(denorm_min) == x1(infinity) == "<<x1(infinity)<<"\n";
             }
- if(x1(std::numeric_limits<T>::denorm_min()) == x1(minus_infinity)) {
+ if(x1(boost::hash_detail::limits<T>::denorm_min()) == x1(minus_infinity)) {
                 std::cerr<<"x1(denorm_min) == x1(-infinity) == "<<x1(minus_infinity)<<"\n";
             }
         }
- if(std::numeric_limits<T>::has_quiet_NaN) {
- if(x1(std::numeric_limits<T>::quiet_NaN()) == x1(infinity)) {
+ if(boost::hash_detail::limits<T>::has_quiet_NaN) {
+ if(x1(boost::hash_detail::limits<T>::quiet_NaN()) == x1(infinity)) {
                 std::cerr<<"x1(quiet_NaN) == x1(infinity) == "<<x1(infinity)<<"\n";
             }
- if(x1(std::numeric_limits<T>::quiet_NaN()) == x1(minus_infinity)) {
+ if(x1(boost::hash_detail::limits<T>::quiet_NaN()) == x1(minus_infinity)) {
                 std::cerr<<"x1(quiet_NaN) == x1(-infinity) == "<<x1(minus_infinity)<<"\n";
             }
         }
     }
 #endif
 
- T max = (std::numeric_limits<T>::max)();
+ T max = (boost::hash_detail::limits<T>::max)();
     T half_max = max / 2;
     T quarter_max = max / 4;
     T three_quarter_max = max - quarter_max;
 
- BOOST_TEST(x1(max) == HASH_NAMESPACE::hash_value(max));
- BOOST_TEST(x1(half_max) == HASH_NAMESPACE::hash_value(half_max));
- BOOST_TEST(x1(quarter_max) == HASH_NAMESPACE::hash_value(quarter_max));
- BOOST_TEST(x1(three_quarter_max) == HASH_NAMESPACE::hash_value(three_quarter_max));
+ BOOST_CHECK(x1(max) == HASH_NAMESPACE::hash_value(max));
+ BOOST_CHECK(x1(half_max) == HASH_NAMESPACE::hash_value(half_max));
+ BOOST_CHECK(x1(quarter_max) == HASH_NAMESPACE::hash_value(quarter_max));
+ BOOST_CHECK(x1(three_quarter_max) == HASH_NAMESPACE::hash_value(three_quarter_max));
 
     // The '!=' tests could legitimately fail, but with my hash it indicates a bug.
- BOOST_TEST(x1(max) == x1(max));
- BOOST_TEST(x1(max) != x1(quarter_max));
- BOOST_TEST(x1(max) != x1(half_max));
- BOOST_TEST(x1(max) != x1(three_quarter_max));
- BOOST_TEST(x1(quarter_max) == x1(quarter_max));
- BOOST_TEST(x1(quarter_max) != x1(half_max));
- BOOST_TEST(x1(quarter_max) != x1(three_quarter_max));
- BOOST_TEST(x1(half_max) == x1(half_max));
- BOOST_TEST(x1(half_max) != x1(three_quarter_max));
- BOOST_TEST(x1(three_quarter_max) == x1(three_quarter_max));
+ BOOST_CHECK(x1(max) == x1(max));
+ BOOST_CHECK(x1(max) != x1(quarter_max));
+ BOOST_CHECK(x1(max) != x1(half_max));
+ BOOST_CHECK(x1(max) != x1(three_quarter_max));
+ BOOST_CHECK(x1(quarter_max) == x1(quarter_max));
+ BOOST_CHECK(x1(quarter_max) != x1(half_max));
+ BOOST_CHECK(x1(quarter_max) != x1(three_quarter_max));
+ BOOST_CHECK(x1(half_max) == x1(half_max));
+ BOOST_CHECK(x1(half_max) != x1(three_quarter_max));
+ BOOST_CHECK(x1(three_quarter_max) == x1(three_quarter_max));
 
 // Intel with gcc stdlib sometimes segfaults on calls to asin and acos.
 #if !((defined(__INTEL_COMPILER) || defined(__ICL) || \
@@ -137,55 +137,55 @@
     T v1 = asin((T) 1);
     T v2 = acos((T) 0);
     if(v1 == v2)
- BOOST_TEST(x1(v1) == x1(v2));
- BOOST_TEST(x1(v1) == HASH_NAMESPACE::hash_value(v1));
- BOOST_TEST(x1(v2) == HASH_NAMESPACE::hash_value(v2));
+ BOOST_CHECK(x1(v1) == x1(v2));
+ BOOST_CHECK(x1(v1) == HASH_NAMESPACE::hash_value(v1));
+ BOOST_CHECK(x1(v2) == HASH_NAMESPACE::hash_value(v2));
 #endif
 
- BOOST_TEST(x1(std::numeric_limits<T>::epsilon()) ==
- HASH_NAMESPACE::hash_value(std::numeric_limits<T>::epsilon()));
+ BOOST_CHECK(x1(boost::hash_detail::limits<T>::epsilon()) ==
+ HASH_NAMESPACE::hash_value(boost::hash_detail::limits<T>::epsilon()));
 
- BOOST_TEST(std::numeric_limits<T>::epsilon() != (T) 0);
- if(x1(std::numeric_limits<T>::epsilon()) == x1((T) 0))
+ BOOST_CHECK(boost::hash_detail::limits<T>::epsilon() != (T) 0);
+ if(x1(boost::hash_detail::limits<T>::epsilon()) == x1((T) 0))
         std::cerr<<"x1(epsilon) == x1(0) == "<<x1((T) 0)<<"\n";
 
- BOOST_TEST(-std::numeric_limits<T>::epsilon() != (T) 0);
- if(x1(-std::numeric_limits<T>::epsilon()) == x1((T) 0))
+ BOOST_CHECK(-boost::hash_detail::limits<T>::epsilon() != (T) 0);
+ if(x1(-boost::hash_detail::limits<T>::epsilon()) == x1((T) 0))
         std::cerr<<"x1(-epsilon) == x1(0) == "<<x1((T) 0)<<"\n";
 
- BOOST_TEST((T) 1 + std::numeric_limits<T>::epsilon() != (T) 1);
- if(x1((T) 1 + std::numeric_limits<T>::epsilon()) == x1((T) 1))
+ BOOST_CHECK((T) 1 + boost::hash_detail::limits<T>::epsilon() != (T) 1);
+ if(x1((T) 1 + boost::hash_detail::limits<T>::epsilon()) == x1((T) 1))
         std::cerr<<"x1(1 + epsilon) == x1(1) == "<<x1((T) 1)<<"\n";
 
- BOOST_TEST((T) 1 - std::numeric_limits<T>::epsilon() != (T) 1);
- if(x1((T) 1 - std::numeric_limits<T>::epsilon()) == x1((T) 1))
+ BOOST_CHECK((T) 1 - boost::hash_detail::limits<T>::epsilon() != (T) 1);
+ if(x1((T) 1 - boost::hash_detail::limits<T>::epsilon()) == x1((T) 1))
         std::cerr<<"x1(1 - epsilon) == x1(1) == "<<x1((T) 1)<<"\n";
 
- BOOST_TEST((T) -1 + std::numeric_limits<T>::epsilon() != (T) -1);
- if(x1((T) -1 + std::numeric_limits<T>::epsilon()) == x1((T) -1))
+ BOOST_CHECK((T) -1 + boost::hash_detail::limits<T>::epsilon() != (T) -1);
+ if(x1((T) -1 + boost::hash_detail::limits<T>::epsilon()) == x1((T) -1))
         std::cerr<<"x1(-1 + epsilon) == x1(-1) == "<<x1((T) -1)<<"\n";
 
- BOOST_TEST((T) -1 - std::numeric_limits<T>::epsilon() != (T) -1);
- if(x1((T) -1 - std::numeric_limits<T>::epsilon()) == x1((T) -1))
+ BOOST_CHECK((T) -1 - boost::hash_detail::limits<T>::epsilon() != (T) -1);
+ if(x1((T) -1 - boost::hash_detail::limits<T>::epsilon()) == x1((T) -1))
         std::cerr<<"x1(-1 - epsilon) == x1(-1) == "<<x1((T) -1)<<"\n";
 
     // As before.
- if(std::numeric_limits<T>::has_denorm) {
- if(x1(std::numeric_limits<T>::denorm_min()) == x1(zero)) {
+ if(boost::hash_detail::limits<T>::has_denorm) {
+ if(x1(boost::hash_detail::limits<T>::denorm_min()) == x1(zero)) {
             std::cerr<<"x1(denorm_min) == x1(zero) == "<<x1(zero)<<"\n";
         }
 #if !BOOST_WORKAROUND(__DECCXX_VER,<70190006)
         // The Tru64/CXX standard library prior to 7.1 contains a bug in the
- // specialization of std::numeric_limits::denorm_min() for long
+ // specialization of boost::hash_detail::limits::denorm_min() for long
         // doubles which causes this test to fail.
- if(x1(std::numeric_limits<T>::denorm_min()) !=
- HASH_NAMESPACE::hash_value(std::numeric_limits<T>::denorm_min()))
+ if(x1(boost::hash_detail::limits<T>::denorm_min()) !=
+ HASH_NAMESPACE::hash_value(boost::hash_detail::limits<T>::denorm_min()))
         {
- std::cerr<<"x1(std::numeric_limits<T>::denorm_min()) = "
- << x1(std::numeric_limits<T>::denorm_min())
- << "\nhash_value(std::numeric_limits<T>::denorm_min()) = "
+ std::cerr<<"x1(boost::hash_detail::limits<T>::denorm_min()) = "
+ << x1(boost::hash_detail::limits<T>::denorm_min())
+ << "\nhash_value(boost::hash_detail::limits<T>::denorm_min()) = "
                 << HASH_NAMESPACE::hash_value(
- std::numeric_limits<T>::denorm_min())
+ boost::hash_detail::limits<T>::denorm_min())
                 << "\nx1(0) = "<<x1(0)<<"\n";
         }
 #endif
@@ -193,12 +193,12 @@
 
 // NaN also causes borland to crash.
 #if !defined(__BORLANDC__)
- if(std::numeric_limits<T>::has_quiet_NaN) {
- if(x1(std::numeric_limits<T>::quiet_NaN()) == x1(1.0)) {
+ if(boost::hash_detail::limits<T>::has_quiet_NaN) {
+ if(x1(boost::hash_detail::limits<T>::quiet_NaN()) == x1(1.0)) {
             std::cerr<<"x1(quiet_NaN) == x1(1.0) == "<<x1(1.0)<<"\n";
         }
- BOOST_TEST(x1(std::numeric_limits<T>::quiet_NaN()) ==
- HASH_NAMESPACE::hash_value(std::numeric_limits<T>::quiet_NaN()));
+ BOOST_CHECK(x1(boost::hash_detail::limits<T>::quiet_NaN()) ==
+ HASH_NAMESPACE::hash_value(boost::hash_detail::limits<T>::quiet_NaN()));
     }
 #endif
 }

Modified: branches/release/libs/functional/hash/test/hash_friend_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_friend_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_friend_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -50,7 +50,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -61,13 +61,13 @@
 void custom_tests()
 {
     HASH_NAMESPACE::hash<test::custom<int> > custom_hasher;
- BOOST_TEST(custom_hasher(10) == 100u);
+ BOOST_CHECK(custom_hasher(10) == 100u);
     test::custom<int> x(55);
- BOOST_TEST(custom_hasher(x) == 550u);
+ BOOST_CHECK(custom_hasher(x) == 550u);
 
     {
         using namespace HASH_NAMESPACE;
- BOOST_TEST(custom_hasher(x) == hash_value(x));
+ BOOST_CHECK(custom_hasher(x) == hash_value(x));
     }
 
     std::vector<test::custom<int> > custom_vector;
@@ -85,17 +85,17 @@
     HASH_NAMESPACE::hash_combine(seed2, 250u);
     HASH_NAMESPACE::hash_combine(seed2, 350u);
 
- BOOST_TEST(seed ==
+ BOOST_CHECK(seed ==
             HASH_NAMESPACE::hash_range(custom_vector.begin(), custom_vector.end()));
- BOOST_TEST(seed == seed2);
+ BOOST_CHECK(seed == seed2);
 }
 
 #endif // TEST_EXTENSIONS
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     custom_tests();
 #endif
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_function_pointer_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_function_pointer_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_function_pointer_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -11,7 +11,7 @@
 # include <boost/functional/hash.hpp>
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #include <boost/limits.hpp>
 #include <boost/mpl/assert.hpp>
@@ -32,31 +32,31 @@
     HASH_NAMESPACE::hash<void(*)()> hasher_void;
     HASH_NAMESPACE::hash<int(*)(int)> hasher_int;
 
- BOOST_TEST(&void_func1 != &void_func2);
- BOOST_TEST(&int_func1 != &int_func2);
+ BOOST_CHECK(&void_func1 != &void_func2);
+ BOOST_CHECK(&int_func1 != &int_func2);
 
- BOOST_TEST(hasher_void(0) == hasher_void(0));
- BOOST_TEST(hasher_void(&void_func1) == hasher_void(&void_func1));
- BOOST_TEST(hasher_void(&void_func1) != hasher_void(&void_func2));
- BOOST_TEST(hasher_void(&void_func1) != hasher_void(0));
- BOOST_TEST(hasher_int(0) == hasher_int(0));
- BOOST_TEST(hasher_int(&int_func1) == hasher_int(&int_func1));
- BOOST_TEST(hasher_int(&int_func1) != hasher_int(&int_func2));
- BOOST_TEST(hasher_int(&int_func1) != hasher_int(0));
+ BOOST_CHECK(hasher_void(0) == hasher_void(0));
+ BOOST_CHECK(hasher_void(&void_func1) == hasher_void(&void_func1));
+ BOOST_CHECK(hasher_void(&void_func1) != hasher_void(&void_func2));
+ BOOST_CHECK(hasher_void(&void_func1) != hasher_void(0));
+ BOOST_CHECK(hasher_int(0) == hasher_int(0));
+ BOOST_CHECK(hasher_int(&int_func1) == hasher_int(&int_func1));
+ BOOST_CHECK(hasher_int(&int_func1) != hasher_int(&int_func2));
+ BOOST_CHECK(hasher_int(&int_func1) != hasher_int(0));
 #if defined(TEST_EXTENSIONS)
- BOOST_TEST(hasher_void(&void_func1)
+ BOOST_CHECK(hasher_void(&void_func1)
             == HASH_NAMESPACE::hash_value(&void_func1));
- BOOST_TEST(hasher_int(&int_func1)
+ BOOST_CHECK(hasher_int(&int_func1)
             == HASH_NAMESPACE::hash_value(&int_func1));
 
     // This isn't specified in Peter's proposal:
- BOOST_TEST(hasher_void(0) == 0);
+ BOOST_CHECK(hasher_void(0) == 0);
 #endif
 }
 
-int main()
+int test_main(int, char**)
 {
     function_pointer_tests();
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_fwd_test.hpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_fwd_test.hpp (original)
+++ branches/release/libs/functional/hash/test/hash_fwd_test.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 

Modified: branches/release/libs/functional/hash/test/hash_fwd_test_1.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_fwd_test_1.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_fwd_test_1.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -7,7 +7,7 @@
 
 #include "./hash_fwd_test.hpp"
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #if defined(TEST_EXTENSIONS) && !defined(TEST_STD_INCLUDES)
 
@@ -24,8 +24,8 @@
     HASH_NAMESPACE::hash<test::test_type1<int> > hasher_test_int;
     HASH_NAMESPACE::hash<test::test_type1<std::string> > hasher_test_string;
 
- BOOST_TEST(hasher_int(5) == hasher_test_int(x));
- BOOST_TEST(hasher_string("Test") == hasher_test_string(y));
+ BOOST_CHECK(hasher_int(5) == hasher_test_int(x));
+ BOOST_CHECK(hasher_string("Test") == hasher_test_string(y));
 }
 
 void fwd_test2()
@@ -44,8 +44,8 @@
     HASH_NAMESPACE::hash<test::test_type2<int> > hasher_test_int;
     HASH_NAMESPACE::hash<test::test_type2<std::string> > hasher_test_string;
 
- BOOST_TEST(seed1 == hasher_test_int(x));
- BOOST_TEST(seed2 == hasher_test_string(y));
+ BOOST_CHECK(seed1 == hasher_test_int(x));
+ BOOST_CHECK(seed2 == hasher_test_string(y));
 }
 
 void fwd_test3()
@@ -75,19 +75,19 @@
     HASH_NAMESPACE::hash<test::test_type3<int> > hasher_test_int;
     HASH_NAMESPACE::hash<test::test_type3<std::string> > hasher_test_string;
 
- BOOST_TEST(seed1 == hasher_test_int(x));
- BOOST_TEST(seed2 == hasher_test_string(y));
+ BOOST_CHECK(seed1 == hasher_test_int(x));
+ BOOST_CHECK(seed2 == hasher_test_string(y));
 }
 
 #endif
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     fwd_test1();
     fwd_test2();
     fwd_test3();
 #endif
- return boost::report_errors();
+ return 0;
 }
 

Modified: branches/release/libs/functional/hash/test/hash_fwd_test_2.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_fwd_test_2.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_fwd_test_2.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -8,7 +8,7 @@
 
 #include "./hash_fwd_test.hpp"
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 template <class T> void unused(T const&) {}
 
@@ -31,9 +31,9 @@
 }
 
 
-int main()
+int test_main(int, char**)
 {
     fwd_test();
- return boost::report_errors();
+ return 0;
 }
 

Modified: branches/release/libs/functional/hash/test/hash_global_namespace_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_global_namespace_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_global_namespace_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -48,7 +48,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -59,13 +59,13 @@
 void custom_tests()
 {
     HASH_NAMESPACE::hash<custom> custom_hasher;
- BOOST_TEST(custom_hasher(10) == 100u);
+ BOOST_CHECK(custom_hasher(10) == 100u);
     custom x(55);
- BOOST_TEST(custom_hasher(x) == 550u);
+ BOOST_CHECK(custom_hasher(x) == 550u);
 
     {
         using namespace HASH_NAMESPACE;
- BOOST_TEST(custom_hasher(x) == hash_value(x));
+ BOOST_CHECK(custom_hasher(x) == hash_value(x));
     }
 
     std::vector<custom> custom_vector;
@@ -83,19 +83,19 @@
     HASH_NAMESPACE::hash_combine(seed2, 250u);
     HASH_NAMESPACE::hash_combine(seed2, 350u);
 
- BOOST_TEST(seed ==
+ BOOST_CHECK(seed ==
             HASH_NAMESPACE::hash_range(custom_vector.begin(), custom_vector.end()));
- BOOST_TEST(seed == seed2);
+ BOOST_CHECK(seed == seed2);
 }
 
 #endif // TEST_EXTENSIONS
 
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     custom_tests();
 #endif
- return boost::report_errors();
+ return 0;
 }
 

Modified: branches/release/libs/functional/hash/test/hash_list_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_list_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_list_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -13,7 +13,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -25,11 +25,11 @@
 
 #endif // TEST_EXTENSIONS
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     list_tests::list_hash_integer_tests();
 #endif
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_long_double_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_long_double_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_long_double_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,11 +1,11 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include "hash_float_test.hpp"
 
-int main()
+int test_main(int, char**)
 {
     std::cerr<<"Compiler: "<<BOOST_COMPILER<<"\n";
     std::cerr<<"Platform: "<<BOOST_PLATFORM<<"\n";
@@ -13,5 +13,5 @@
 
     float_tests("long double", (long double*) 0);
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_map_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_map_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_map_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -13,7 +13,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #include <map>
 
@@ -29,12 +29,12 @@
 
 #endif // TEST_EXTENSTIONS
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     map_tests::map_hash_integer_tests();
     multimap_tests::multimap_hash_integer_tests();
 #endif
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_map_test.hpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_map_test.hpp (original)
+++ branches/release/libs/functional/hash/test/hash_map_test.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -38,17 +38,17 @@
         HASH_NAMESPACE::hash<T> hasher;
 
         for(int i2 = 0; i2 < number_of_containers; ++i2) {
- BOOST_TEST(hasher(containers[i2]) == hasher(containers[i2]));
+ BOOST_CHECK(hasher(containers[i2]) == hasher(containers[i2]));
 
- BOOST_TEST(hasher(containers[i2]) ==
+ BOOST_CHECK(hasher(containers[i2]) ==
                     HASH_NAMESPACE::hash_value(containers[i2]));
 
- BOOST_TEST(hasher(containers[i2])
+ BOOST_CHECK(hasher(containers[i2])
                     == HASH_NAMESPACE::hash_range(
                         containers[i2].begin(), containers[i2].end()));
 
             for(int j2 = i2 + 1; j2 < number_of_containers; ++j2) {
- BOOST_TEST(
+ BOOST_CHECK(
                         (containers[i2] == containers[j2]) ==
                         (hasher(containers[i2]) == hasher(containers[j2]))
                         );

Modified: branches/release/libs/functional/hash/test/hash_no_ext_fail_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_no_ext_fail_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_no_ext_fail_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -12,7 +12,7 @@
 #include <boost/functional/hash.hpp>
 #include <boost/functional/hash.hpp>
 
-int main()
+int test_main(int, char**)
 {
     HASH_NAMESPACE::hash< int[10] > hasher;
     return 0;

Modified: branches/release/libs/functional/hash/test/hash_no_ext_macro_1.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_no_ext_macro_1.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_no_ext_macro_1.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -7,11 +7,11 @@
 #include <boost/functional/hash.hpp>
 #define BOOST_HASH_NO_EXTENSIONS
 #include <boost/functional/hash.hpp>
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 #include <deque>
 #include <cassert>
 
-int main()
+int test_main(int, char**)
 {
     std::deque<int> x;
 
@@ -19,7 +19,7 @@
     x.push_back(2);
 
     HASH_NAMESPACE::hash<std::deque<int> > hasher;
- BOOST_TEST(hasher(x) == HASH_NAMESPACE::hash_value(x));
+ BOOST_CHECK(hasher(x) == HASH_NAMESPACE::hash_value(x));
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_no_ext_macro_2.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_no_ext_macro_2.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_no_ext_macro_2.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -8,10 +8,10 @@
 #include <boost/functional/hash.hpp>
 #undef BOOST_HASH_NO_EXTENSIONS
 #include <boost/functional/hash.hpp>
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 #include <map>
 
-int main()
+int test_main(int, char**)
 {
     std::map<int, int> x;
 
@@ -19,7 +19,7 @@
     x.insert(std::map<int, int>::value_type(14, -75));
 
     HASH_NAMESPACE::hash<std::map<int, int> > hasher;
- BOOST_TEST(hasher(x) == HASH_NAMESPACE::hash_value(x));
+ BOOST_CHECK(hasher(x) == HASH_NAMESPACE::hash_value(x));
     
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_number_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_number_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_number_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -12,7 +12,7 @@
 #endif
 
 #include <iostream>
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #include <boost/preprocessor/cat.hpp>
 #include <boost/limits.hpp>
@@ -31,7 +31,7 @@
 template <class T>
 void numeric_test(T*)
 {
- typedef std::numeric_limits<T> limits;
+ typedef boost::hash_detail::limits<T> limits;
 
     compile_time_tests((T*) 0);
 
@@ -39,27 +39,27 @@
     HASH_NAMESPACE::hash<T> x2;
 
     T v1 = (T) -5;
- BOOST_TEST(x1(v1) == x2(v1));
- BOOST_TEST(x1(T(-5)) == x2(T(-5)));
- BOOST_TEST(x1(T(0)) == x2(T(0)));
- BOOST_TEST(x1(T(10)) == x2(T(10)));
- BOOST_TEST(x1(T(25)) == x2(T(25)));
- BOOST_TEST(x1(T(5) - T(5)) == x2(T(0)));
- BOOST_TEST(x1(T(6) + T(4)) == x2(T(10)));
+ BOOST_CHECK(x1(v1) == x2(v1));
+ BOOST_CHECK(x1(T(-5)) == x2(T(-5)));
+ BOOST_CHECK(x1(T(0)) == x2(T(0)));
+ BOOST_CHECK(x1(T(10)) == x2(T(10)));
+ BOOST_CHECK(x1(T(25)) == x2(T(25)));
+ BOOST_CHECK(x1(T(5) - T(5)) == x2(T(0)));
+ BOOST_CHECK(x1(T(6) + T(4)) == x2(T(10)));
 
 #if defined(TEST_EXTENSIONS)
- BOOST_TEST(x1(T(-5)) == HASH_NAMESPACE::hash_value(T(-5)));
- BOOST_TEST(x1(T(0)) == HASH_NAMESPACE::hash_value(T(0)));
- BOOST_TEST(x1(T(10)) == HASH_NAMESPACE::hash_value(T(10)));
- BOOST_TEST(x1(T(25)) == HASH_NAMESPACE::hash_value(T(25)));
+ BOOST_CHECK(x1(T(-5)) == HASH_NAMESPACE::hash_value(T(-5)));
+ BOOST_CHECK(x1(T(0)) == HASH_NAMESPACE::hash_value(T(0)));
+ BOOST_CHECK(x1(T(10)) == HASH_NAMESPACE::hash_value(T(10)));
+ BOOST_CHECK(x1(T(25)) == HASH_NAMESPACE::hash_value(T(25)));
 
     if (limits::is_integer)
     {
- if(limits::is_signed || limits::digits <= std::numeric_limits<std::size_t>::digits)
- BOOST_TEST(HASH_NAMESPACE::hash_value(T(-5)) == (std::size_t)T(-5));
- BOOST_TEST(HASH_NAMESPACE::hash_value(T(0)) == (std::size_t)T(0u));
- BOOST_TEST(HASH_NAMESPACE::hash_value(T(10)) == (std::size_t)T(10u));
- BOOST_TEST(HASH_NAMESPACE::hash_value(T(25)) == (std::size_t)T(25u));
+ if(limits::is_signed || limits::digits <= boost::hash_detail::limits<std::size_t>::digits)
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(T(-5)) == (std::size_t)T(-5));
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(T(0)) == (std::size_t)T(0u));
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(T(10)) == (std::size_t)T(10u));
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(T(25)) == (std::size_t)T(25u));
     }
 #endif
 }
@@ -67,7 +67,7 @@
 template <class T>
 void limits_test(T*)
 {
- typedef std::numeric_limits<T> limits;
+ typedef boost::hash_detail::limits<T> limits;
 
     if(limits::is_specialized)
     {
@@ -77,18 +77,18 @@
         T min_value = (limits::min)();
         T max_value = (limits::max)();
 
- BOOST_TEST(x1(min_value) == x2((limits::min)()));
- BOOST_TEST(x1(max_value) == x2((limits::max)()));
+ BOOST_CHECK(x1(min_value) == x2((limits::min)()));
+ BOOST_CHECK(x1(max_value) == x2((limits::max)()));
 
 #if defined(TEST_EXTENSIONS)
- BOOST_TEST(x1(min_value) == HASH_NAMESPACE::hash_value(min_value));
- BOOST_TEST(x1(max_value) == HASH_NAMESPACE::hash_value(max_value));
+ BOOST_CHECK(x1(min_value) == HASH_NAMESPACE::hash_value(min_value));
+ BOOST_CHECK(x1(max_value) == HASH_NAMESPACE::hash_value(max_value));
 
         if (limits::is_integer)
         {
- BOOST_TEST(HASH_NAMESPACE::hash_value(min_value)
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(min_value)
                     == std::size_t(min_value));
- BOOST_TEST(HASH_NAMESPACE::hash_value(max_value)
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(max_value)
                     == std::size_t(max_value));
         }
 #endif
@@ -98,7 +98,7 @@
 template <class T>
 void poor_quality_tests(T*)
 {
- typedef std::numeric_limits<T> limits;
+ typedef boost::hash_detail::limits<T> limits;
 
     HASH_NAMESPACE::hash<T> x1;
     HASH_NAMESPACE::hash<T> x2;
@@ -106,11 +106,11 @@
     // A hash function can legally fail these tests, but it'll not be a good
     // sign.
     if(T(1) != T(-1))
- BOOST_TEST(x1(T(1)) != x2(T(-1)));
+ BOOST_CHECK(x1(T(1)) != x2(T(-1)));
     if(T(1) != T(2))
- BOOST_TEST(x1(T(1)) != x2(T(2)));
+ BOOST_CHECK(x1(T(1)) != x2(T(2)));
     if((limits::max)() != (limits::max)() - 1)
- BOOST_TEST(x1((limits::max)()) != x2((limits::max)() - 1));
+ BOOST_CHECK(x1((limits::max)()) != x2((limits::max)() - 1));
 }
 
 void bool_test()
@@ -118,10 +118,10 @@
     HASH_NAMESPACE::hash<bool> x1;
     HASH_NAMESPACE::hash<bool> x2;
     
- BOOST_TEST(x1(true) == x2(true));
- BOOST_TEST(x1(false) == x2(false));
- BOOST_TEST(x1(true) != x2(false));
- BOOST_TEST(x1(false) != x2(true));
+ BOOST_CHECK(x1(true) == x2(true));
+ BOOST_CHECK(x1(false) == x2(false));
+ BOOST_CHECK(x1(true) != x2(false));
+ BOOST_CHECK(x1(false) != x2(true));
 }
 
 #define NUMERIC_TEST(type, name) \
@@ -134,7 +134,7 @@
     numeric_test((type*) 0); \
     poor_quality_tests((type*) 0);
 
-int main()
+int test_main(int, char**)
 {
     NUMERIC_TEST(char, char)
     NUMERIC_TEST(signed char, schar)
@@ -150,8 +150,8 @@
     NUMERIC_TEST(unsigned long, ulong)
 
 #if defined(BOOST_HAS_LONG_LONG)
- NUMERIC_TEST_NO_LIMITS(long long, hash_longlong)
- NUMERIC_TEST_NO_LIMITS(unsigned long long, ulonglong)
+ NUMERIC_TEST_NO_LIMITS(boost::long_long_type, long_long)
+ NUMERIC_TEST_NO_LIMITS(boost::ulong_long_type, ulong_long)
 #endif
 
     NUMERIC_TEST(float, float)
@@ -159,7 +159,7 @@
 
     bool_test();
 
- return boost::report_errors();
+ return 0;
 }
 
 #if defined(BOOST_MSVC)

Modified: branches/release/libs/functional/hash/test/hash_pointer_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_pointer_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_pointer_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -11,7 +11,7 @@
 # include <boost/functional/hash.hpp>
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #include <boost/limits.hpp>
 #include <boost/mpl/assert.hpp>
@@ -30,20 +30,20 @@
     int int1;
     int int2;
 
- BOOST_TEST(x1(0) == x2(0));
- BOOST_TEST(x1(&int1) == x2(&int1));
- BOOST_TEST(x1(&int2) == x2(&int2));
+ BOOST_CHECK(x1(0) == x2(0));
+ BOOST_CHECK(x1(&int1) == x2(&int1));
+ BOOST_CHECK(x1(&int2) == x2(&int2));
 #if defined(TEST_EXTENSIONS)
- BOOST_TEST(x1(&int1) == HASH_NAMESPACE::hash_value(&int1));
- BOOST_TEST(x1(&int2) == HASH_NAMESPACE::hash_value(&int2));
+ BOOST_CHECK(x1(&int1) == HASH_NAMESPACE::hash_value(&int1));
+ BOOST_CHECK(x1(&int2) == HASH_NAMESPACE::hash_value(&int2));
 
     // This isn't specified in Peter's proposal:
- BOOST_TEST(x1(0) == 0);
+ BOOST_CHECK(x1(0) == 0);
 #endif
 }
 
-int main()
+int test_main(int, char**)
 {
     pointer_tests();
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_range_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_range_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_range_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -13,7 +13,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -41,45 +41,45 @@
     std::vector<int> x;
 
     std::size_t x_seed = 0;
- BOOST_TEST(x_seed == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
+ BOOST_CHECK(x_seed == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
 
- BOOST_TEST(HASH_NAMESPACE::hash_range(empty.begin(), empty.end())
+ BOOST_CHECK(HASH_NAMESPACE::hash_range(empty.begin(), empty.end())
         == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
- BOOST_TEST(HASH_NAMESPACE::hash_range(empty.begin(), empty.end())
+ BOOST_CHECK(HASH_NAMESPACE::hash_range(empty.begin(), empty.end())
         != HASH_NAMESPACE::hash_range(values1.begin(), values1.end()));
 
     x.push_back(10);
     HASH_NAMESPACE::hash_combine(x_seed, 10);
- BOOST_TEST(x_seed == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
+ BOOST_CHECK(x_seed == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
 
- BOOST_TEST(HASH_NAMESPACE::hash_range(empty.begin(), empty.end())
+ BOOST_CHECK(HASH_NAMESPACE::hash_range(empty.begin(), empty.end())
         != HASH_NAMESPACE::hash_range(x.begin(), x.end()));
- BOOST_TEST(HASH_NAMESPACE::hash_range(values2.begin(), values2.end())
+ BOOST_CHECK(HASH_NAMESPACE::hash_range(values2.begin(), values2.end())
         == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
 
     x.push_back(20);
     HASH_NAMESPACE::hash_combine(x_seed, 20);
- BOOST_TEST(x_seed == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
+ BOOST_CHECK(x_seed == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
 
- BOOST_TEST(HASH_NAMESPACE::hash_range(empty.begin(), empty.end())
+ BOOST_CHECK(HASH_NAMESPACE::hash_range(empty.begin(), empty.end())
         != HASH_NAMESPACE::hash_range(x.begin(), x.end()));
- BOOST_TEST(HASH_NAMESPACE::hash_range(values2.begin(), values2.end())
+ BOOST_CHECK(HASH_NAMESPACE::hash_range(values2.begin(), values2.end())
         != HASH_NAMESPACE::hash_range(x.begin(), x.end()));
- BOOST_TEST(HASH_NAMESPACE::hash_range(values3.begin(), values3.end())
+ BOOST_CHECK(HASH_NAMESPACE::hash_range(values3.begin(), values3.end())
         == HASH_NAMESPACE::hash_range(x.begin(), x.end()));
 
     std::size_t seed = HASH_NAMESPACE::hash_range(values3.begin(), values3.end());
     HASH_NAMESPACE::hash_range(seed, values4.begin(), values4.end());
     HASH_NAMESPACE::hash_range(seed, x.begin(), x.end());
- BOOST_TEST(seed == HASH_NAMESPACE::hash_range(values5.begin(), values5.end()));
+ BOOST_CHECK(seed == HASH_NAMESPACE::hash_range(values5.begin(), values5.end()));
 }
 
 #endif
 
-int main()
+int test_main(int, char**)
 {
     hash_range_tests();
 
- return boost::report_errors();
+ return 0;
 }
 

Modified: branches/release/libs/functional/hash/test/hash_sequence_test.hpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_sequence_test.hpp (original)
+++ branches/release/libs/functional/hash/test/hash_sequence_test.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -41,17 +41,17 @@
         HASH_NAMESPACE::hash<T> hasher;
 
         for(int i2 = 0; i2 < number_of_containers; ++i2) {
- BOOST_TEST(hasher(containers[i2]) == hasher(containers[i2]));
+ BOOST_CHECK(hasher(containers[i2]) == hasher(containers[i2]));
 
- BOOST_TEST(hasher(containers[i2]) ==
+ BOOST_CHECK(hasher(containers[i2]) ==
                     HASH_NAMESPACE::hash_value(containers[i2]));
 
- BOOST_TEST(hasher(containers[i2])
+ BOOST_CHECK(hasher(containers[i2])
                     == HASH_NAMESPACE::hash_range(
                         containers[i2].begin(), containers[i2].end()));
 
             for(int j2 = i2 + 1; j2 < number_of_containers; ++j2) {
- BOOST_TEST(
+ BOOST_CHECK(
                         (containers[i2] == containers[j2]) ==
                         (hasher(containers[i2]) == hasher(containers[j2]))
                         );

Modified: branches/release/libs/functional/hash/test/hash_set_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_set_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_set_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -13,7 +13,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -29,12 +29,12 @@
 
 #endif
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     set_tests::set_hash_integer_tests();
     multiset_tests::multiset_hash_integer_tests();
 #endif
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_set_test.hpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_set_test.hpp (original)
+++ branches/release/libs/functional/hash/test/hash_set_test.hpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -44,17 +44,17 @@
         HASH_NAMESPACE::hash<T> hasher;
 
         for(int i2 = 0; i2 < number_of_containers; ++i2) {
- BOOST_TEST(hasher(containers[i2]) == hasher(containers[i2]));
+ BOOST_CHECK(hasher(containers[i2]) == hasher(containers[i2]));
 
- BOOST_TEST(hasher(containers[i2]) ==
+ BOOST_CHECK(hasher(containers[i2]) ==
                     HASH_NAMESPACE::hash_value(containers[i2]));
 
- BOOST_TEST(hasher(containers[i2])
+ BOOST_CHECK(hasher(containers[i2])
                     == HASH_NAMESPACE::hash_range(
                         containers[i2].begin(), containers[i2].end()));
 
             for(int j2 = i2 + 1; j2 < number_of_containers; ++j2) {
- BOOST_TEST(
+ BOOST_CHECK(
                         (containers[i2] == containers[j2]) ==
                         (hasher(containers[i2]) == hasher(containers[j2]))
                         );

Modified: branches/release/libs/functional/hash/test/hash_string_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_string_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_string_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -11,7 +11,7 @@
 # include <boost/functional/hash.hpp>
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #include <boost/limits.hpp>
 #include <boost/mpl/assert.hpp>
@@ -27,18 +27,18 @@
     HASH_NAMESPACE::hash<std::string> x1;
     HASH_NAMESPACE::hash<std::string> x2;
 
- BOOST_TEST(x1("Hello") == x2(std::string("Hel") + "lo"));
- BOOST_TEST(x1("") == x2(std::string()));
+ BOOST_CHECK(x1("Hello") == x2(std::string("Hel") + "lo"));
+ BOOST_CHECK(x1("") == x2(std::string()));
 
 #if defined(TEST_EXTENSIONS)
     std::string value1;
     std::string value2("Hello");
 
- BOOST_TEST(x1(value1) == HASH_NAMESPACE::hash_value(value1));
- BOOST_TEST(x1(value2) == HASH_NAMESPACE::hash_value(value2));
- BOOST_TEST(HASH_NAMESPACE::hash_value(value1) ==
+ BOOST_CHECK(x1(value1) == HASH_NAMESPACE::hash_value(value1));
+ BOOST_CHECK(x1(value2) == HASH_NAMESPACE::hash_value(value2));
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(value1) ==
             HASH_NAMESPACE::hash_range(value1.begin(), value1.end()));
- BOOST_TEST(HASH_NAMESPACE::hash_value(value2) ==
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(value2) ==
             HASH_NAMESPACE::hash_range(value2.begin(), value2.end()));
 #endif
 }
@@ -51,28 +51,28 @@
     HASH_NAMESPACE::hash<std::wstring> x1;
     HASH_NAMESPACE::hash<std::wstring> x2;
 
- BOOST_TEST(x1(L"Hello") == x2(std::wstring(L"Hel") + L"lo"));
- BOOST_TEST(x1(L"") == x2(std::wstring()));
+ BOOST_CHECK(x1(L"Hello") == x2(std::wstring(L"Hel") + L"lo"));
+ BOOST_CHECK(x1(L"") == x2(std::wstring()));
 
 #if defined(TEST_EXTENSIONS)
     std::wstring value1;
     std::wstring value2(L"Hello");
 
- BOOST_TEST(x1(value1) == HASH_NAMESPACE::hash_value(value1));
- BOOST_TEST(x1(value2) == HASH_NAMESPACE::hash_value(value2));
- BOOST_TEST(HASH_NAMESPACE::hash_value(value1) ==
+ BOOST_CHECK(x1(value1) == HASH_NAMESPACE::hash_value(value1));
+ BOOST_CHECK(x1(value2) == HASH_NAMESPACE::hash_value(value2));
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(value1) ==
             HASH_NAMESPACE::hash_range(value1.begin(), value1.end()));
- BOOST_TEST(HASH_NAMESPACE::hash_value(value2) ==
+ BOOST_CHECK(HASH_NAMESPACE::hash_value(value2) ==
             HASH_NAMESPACE::hash_range(value2.begin(), value2.end()));
 #endif
 }
 #endif
 
-int main()
+int test_main(int, char**)
 {
     string_tests();
 #if !defined(BOOST_NO_STD_WSTRING)
     wstring_tests();
 #endif
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/hash_value_array_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_value_array_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_value_array_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -16,7 +16,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -37,9 +37,9 @@
     int array3[2] = {2, 3};
     HASH_NAMESPACE::hash<int[2]> hasher3;
 
- BOOST_TEST(hasher1(array1) == HASH_NAMESPACE::hash_value(array1));
- BOOST_TEST(hasher2(array2) == HASH_NAMESPACE::hash_value(array2));
- BOOST_TEST(hasher3(array3) == HASH_NAMESPACE::hash_value(array3));
+ BOOST_CHECK(hasher1(array1) == HASH_NAMESPACE::hash_value(array1));
+ BOOST_CHECK(hasher2(array2) == HASH_NAMESPACE::hash_value(array2));
+ BOOST_CHECK(hasher3(array3) == HASH_NAMESPACE::hash_value(array3));
 }
 
 void two_dimensional_array_test()
@@ -47,18 +47,18 @@
     int array[3][2] = {{-5, 6}, {7, -3}, {26, 1}};
     HASH_NAMESPACE::hash<int[3][2]> hasher;
 
- BOOST_TEST(hasher(array) == HASH_NAMESPACE::hash_value(array));
+ BOOST_CHECK(hasher(array) == HASH_NAMESPACE::hash_value(array));
 }
 
 #endif
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     array_int_test();
     two_dimensional_array_test();
 #endif
 
- return boost::report_errors();
+ return 0;
 }
 

Modified: branches/release/libs/functional/hash/test/hash_vector_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/hash_vector_test.cpp (original)
+++ branches/release/libs/functional/hash/test/hash_vector_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -13,7 +13,7 @@
 # endif
 #endif
 
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 
 #ifdef TEST_EXTENSIONS
 
@@ -25,11 +25,11 @@
 
 #endif // TEST_EXTENSIONS
 
-int main()
+int test_main(int, char**)
 {
 #ifdef TEST_EXTENSIONS
     vector_tests::vector_hash_integer_tests();
 #endif
 
- return boost::report_errors();
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/link_ext_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/link_ext_test.cpp (original)
+++ branches/release/libs/functional/hash/test/link_ext_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,17 +1,17 @@
 
-// Copyright 2006-2007 Daniel James.
+// Copyright 2006-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #define HASH_NAMESPACE boost
 #include <boost/functional/hash.hpp>
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/test/minimal.hpp>
 #include <vector>
 
 int f(std::size_t hash1, int* x1) {
     // Check that HASH_NAMESPACE::hash<int*> works in both files.
     HASH_NAMESPACE::hash<int*> ptr_hasher;
- BOOST_TEST(hash1 == ptr_hasher(x1));
+ BOOST_CHECK(hash1 == ptr_hasher(x1));
 
     // Check that std::vector<std::size_t> is avaiable in this file.
     std::vector<std::size_t> x;

Modified: branches/release/libs/functional/hash/test/link_no_ext_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/link_no_ext_test.cpp (original)
+++ branches/release/libs/functional/hash/test/link_no_ext_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,18 +1,19 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #define HASH_NAMESPACE boost
 #define BOOST_HASH_NO_EXTENSIONS
 #include <boost/functional/hash.hpp>
-#include <boost/detail/lightweight_test.hpp>
+#include <boost/assert.hpp>
 
 extern int f(std::size_t, int*);
 
-int main() {
+int test_main(int, char**) {
     HASH_NAMESPACE::hash<int*> ptr_hasher;
     int x = 55;
- BOOST_TEST(!f(ptr_hasher(&x), &x));
- return boost::report_errors();
+
+ BOOST_ASSERT(!f(ptr_hasher(&x), &x));
+ return 0;
 }

Modified: branches/release/libs/functional/hash/test/link_test.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/link_test.cpp (original)
+++ branches/release/libs/functional/hash/test/link_test.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,9 +1,9 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/functional/hash.hpp>
 
 extern int f();
-int main() { return f(); }
+int main(int, char**) { return f(); }

Modified: branches/release/libs/functional/hash/test/link_test_2.cpp
==============================================================================
--- branches/release/libs/functional/hash/test/link_test_2.cpp (original)
+++ branches/release/libs/functional/hash/test/link_test_2.cpp 2008-06-11 20:27:13 EDT (Wed, 11 Jun 2008)
@@ -1,5 +1,5 @@
 
-// Copyright 2005-2007 Daniel James.
+// Copyright 2005-2008 Daniel James.
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk