$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: daniel_james_at_[hidden]
Date: 2008-01-21 10:51:40
Author: danieljames
Date: 2008-01-21 10:51:40 EST (Mon, 21 Jan 2008)
New Revision: 42896
URL: http://svn.boost.org/trac/boost/changeset/42896
Log:
Use Boost config to tell when we have a std::distance function. Also, no need for a macro.
Text files modified: 
   branches/unordered/trunk/boost/unordered/detail/hash_table.hpp      |    12 +++---------                            
   branches/unordered/trunk/boost/unordered/detail/hash_table_impl.hpp |     6 +++---                                  
   2 files changed, 6 insertions(+), 12 deletions(-)
Modified: branches/unordered/trunk/boost/unordered/detail/hash_table.hpp
==============================================================================
--- branches/unordered/trunk/boost/unordered/detail/hash_table.hpp	(original)
+++ branches/unordered/trunk/boost/unordered/detail/hash_table.hpp	2008-01-21 10:51:40 EST (Mon, 21 Jan 2008)
@@ -110,20 +110,15 @@
             return std::pair<Dst1, Dst2>(Dst1(x.first), Dst2(x.second));
         }
 
-        // Workaround for Apache stdcxx/Rogue Wave on compilers without partial specialization.
-        // (Might not work on older versions?)
-
-#if BOOST_RWSTD_VER && _RWSTD_NO_CLASS_PARTIAL_SPEC
-        #define BOOST_UNORDERED_DISTANCE ::boost::unordered_detail::distance
-        
+#if !defined(BOOST_NO_STD_DISTANCE)
+        using ::std::distance;
+#else
         template <class ForwardIterator>
         inline std::size_t distance(ForwardIterator i, ForwardIterator j) {
             std::size_t x;
             std::distance(i, j, x);
             return x;
         }
-#else
-        #define BOOST_UNORDERED_DISTANCE ::std::distance
 #endif
 
     }
@@ -196,7 +191,6 @@
     } // namespace boost::unordered_detail
 } // namespace boost
 
-#undef BOOST_UNORDERED_DISTANCE
 #undef BOOST_UNORDERED_BORLAND_BOOL
 #undef BOOST_UNORDERED_MSVC_RESET_PTR
 
Modified: branches/unordered/trunk/boost/unordered/detail/hash_table_impl.hpp
==============================================================================
--- branches/unordered/trunk/boost/unordered/detail/hash_table_impl.hpp	(original)
+++ branches/unordered/trunk/boost/unordered/detail/hash_table_impl.hpp	2008-01-21 10:51:40 EST (Mon, 21 Jan 2008)
@@ -1045,7 +1045,7 @@
                     boost::forward_traversal_tag)
             {
                 // max load factor isn't set yet, but when it is, it'll be 1.0.
-                return (std::max)(static_cast<size_type>(BOOST_UNORDERED_DISTANCE(i, j)) + 1, n);
+                return (std::max)(static_cast<size_type>(unordered_detail::distance(i, j)) + 1, n);
             }
 
             template <typename I>
@@ -1545,7 +1545,7 @@
             template <typename I>
             void insert_for_range(I i, I j, forward_traversal_tag)
             {
-                size_type distance = BOOST_UNORDERED_DISTANCE(i, j);
+                size_type distance = unordered_detail::distance(i, j);
                 if(distance == 1) {
                     insert(*i);
                 }
@@ -1687,7 +1687,7 @@
             template <typename I>
             size_type insert_size(I i, I j, boost::forward_traversal_tag)
             {
-                return BOOST_UNORDERED_DISTANCE(i, j);
+                return unordered_detail::distance(i, j);
             }
 
             template <typename I>