]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
basic_types.hpp (comp_hash_): Remove, format.
authorBenjamin Kosnik <bkoz@redhat.com>
Mon, 2 Oct 2006 14:53:41 +0000 (14:53 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Mon, 2 Oct 2006 14:53:41 +0000 (14:53 +0000)
2006-10-02  Benjamin Kosnik  <bkoz@redhat.com>

* include/ext/pb_ds/detail/basic_types.hpp (comp_hash_): Remove,
format.
* include/ext/pb_ds/detail/types_traits.hpp
(types_traits::comp_hash): Use pair typedef.
* include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Same.
* include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Same.

From-SVN: r117371

libstdc++-v3/ChangeLog
libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp
libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp

index 8115f0de8a4422e82fa0aca40e9ec5b8b9fdf757..d756a7ed2da9b0259244548108a859d442c14147 100644 (file)
@@ -1,3 +1,12 @@
+2006-10-02  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * include/ext/pb_ds/detail/basic_types.hpp (comp_hash_): Remove,
+       format. 
+       * include/ext/pb_ds/detail/types_traits.hpp
+       (types_traits::comp_hash): Use pair typedef.    
+       * include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Same.
+       * include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Same.
+
 2006-10-01  Paolo Carlini  <pcarlini@suse.de>
 
        * include/tr1/random (xor_combine<>::_M_initialize_max_aux): New.
index 817ea25b5f2c4385e29c7b9e5c3d1b35510b1237..69288ce5ec50c608e953908425f88722c7d51463 100644 (file)
@@ -59,12 +59,6 @@ namespace pb_ds
     template<typename Key, typename Mapped, typename Allocator, bool Store_Hash>
     struct value_type_base;
 
-#define PB_DS_CLASS_T_DEC \
-    template<typename Key, typename Mapped, typename Allocator>
-
-#define PB_DS_CLASS_C_DEC \
-    value_type_base<Key, Mapped, Allocator, false>
-
     /**
      * Specialization of value_type_base for the case where the hash value
      * is not stored alongside each value.
@@ -92,15 +86,6 @@ namespace pb_ds
       };
     };
 
-#undef PB_DS_CLASS_T_DEC
-#undef PB_DS_CLASS_C_DEC
-
-#define PB_DS_CLASS_T_DEC \
-    template<typename Key, typename Mapped, typename Allocator>
-
-#define PB_DS_CLASS_C_DEC \
-    value_type_base<Key, Mapped, Allocator, true>
-
     /**
      * Specialization of value_type_base for the case where the hash value
      * is stored alongside each value.
@@ -129,9 +114,6 @@ namespace pb_ds
       };
     };
 
-#undef PB_DS_CLASS_T_DEC
-#undef PB_DS_CLASS_C_DEC
-
 #define PB_DS_CLASS_T_DEC \
     template<typename Key, typename Allocator>
 
@@ -217,15 +199,10 @@ namespace pb_ds
 #undef PB_DS_CLASS_T_DEC
 #undef PB_DS_CLASS_C_DEC
 
-    template<typename Key, typename Mapped>
-    struct no_throw_copies;
-
     template<typename Key, typename Mapped>
     struct no_throw_copies
     {
-      typedef
-      integral_constant<int, is_simple<Key>::value && is_simple<Mapped>::value>
-      indicator;
+      typedef integral_constant<int, is_simple<Key>::value && is_simple<Mapped>::value> indicator;
     };
 
     template<typename Key>
@@ -233,12 +210,6 @@ namespace pb_ds
     {
       typedef integral_constant<int, is_simple<Key>::value> indicator;
     };
-
-    template<typename Size_Type>
-    struct comp_hash_
-    {
-      typedef std::pair<Size_Type, Size_Type> comp_hash;
-    };
   } // namespace detail
 } // namespace pb_ds
 
index 5d524859cfbf0f96837d2365867aef97b4609fef..179e59358fcf4492a179f603d20fbe698df9a47f 100644 (file)
@@ -41,8 +41,8 @@
 
 /**
  * @file ranged_hash_fn.hpp
- * Contains a unified ranged hash functor, allowing the hash tables to deal with
- *    a single class for ranged hashing.
+ * Contains a unified ranged hash functor, allowing the hash tables
+ * to deal with a single class for ranged hashing.
  */
 
 #ifndef PB_DS_RANGED_HASH_FN_HPP
@@ -56,96 +56,67 @@ namespace pb_ds
 {
   namespace detail
   {
-
-    template<typename Key,
-            class Hash_Fn,
-            class Allocator,
-            class Comb_Hash_Fn,
-            bool Store_Hash>
+    template<typename Key, typename Hash_Fn, typename Allocator, 
+            typename Comb_Hash_Fn, bool Store_Hash>
     class ranged_hash_fn;
 
-#define PB_DS_CLASS_T_DEC                                              \
-    template<                                                          \
-                                               typename Key,           \
-                                               class Hash_Fn,          \
-                                               class Allocator,        \
-                                               class Comb_Hash_Fn>
-
-#define PB_DS_CLASS_C_DEC                                      \
-    ranged_hash_fn<                                            \
-                                               Key,            \
-                                               Hash_Fn,        \
-                                               Allocator,      \
-                                               Comb_Hash_Fn,   \
-                                               false>
+#define PB_DS_CLASS_T_DEC \
+    template<typename Key, typename Hash_Fn, typename Allocator, \
+            typename Comb_Hash_Fn>
+
+#define PB_DS_CLASS_C_DEC \
+    ranged_hash_fn<Key,        Hash_Fn, Allocator, Comb_Hash_Fn, false>
 
     /**
-     * Specialization 1- The client supplies a hash function and a ranged
-     *    hash function, and requests that hash values not be stored.
+     * Specialization 1
+     * The client supplies a hash function and a ranged hash function,
+     * and requests that hash values not be stored.
      **/
-    template<typename Key,
-            class Hash_Fn,
-            class Allocator,
-            class Comb_Hash_Fn>
-    class ranged_hash_fn<
-      Key,
-      Hash_Fn,
-      Allocator,
-      Comb_Hash_Fn,
-      false> : public Hash_Fn,
-              public Comb_Hash_Fn
+    template<typename Key, typename Hash_Fn, typename Allocator, 
+            typename Comb_Hash_Fn>
+    class ranged_hash_fn< Key, Hash_Fn, Allocator, Comb_Hash_Fn, false> 
+    : public Hash_Fn, public Comb_Hash_Fn
     {
     protected:
       typedef typename Allocator::size_type size_type;
-
       typedef Hash_Fn hash_fn_base;
-
       typedef Comb_Hash_Fn comb_hash_fn_base;
-
       typedef typename Allocator::template rebind< Key>::other key_allocator;
-
       typedef typename key_allocator::const_reference const_key_reference;
 
-    protected:
-      ranged_hash_fn(size_type size);
+      ranged_hash_fn(size_type);
 
-      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn);
+      ranged_hash_fn(size_type, const Hash_Fn&);
 
-      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+      ranged_hash_fn(size_type, const Hash_Fn&, const Comb_Hash_Fn&);
 
       void
-      swap(PB_DS_CLASS_C_DEC& other);
+      swap(PB_DS_CLASS_C_DEC&);
 
       void
-      notify_resized(size_type size);
+      notify_resized(size_type);
 
       inline size_type
-      operator()(const_key_reference r_key) const;
+      operator()(const_key_reference) const;
     };
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
     ranged_hash_fn(size_type size)
-    {
-      Comb_Hash_Fn::notify_resized(size);
-    }
+    { Comb_Hash_Fn::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn) :
-      Hash_Fn(r_hash_fn)
-    {
-      Comb_Hash_Fn::notify_resized(size);
-    }
+    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn) 
+    : Hash_Fn(r_hash_fn)
+    { Comb_Hash_Fn::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Hash_Fn(r_hash_fn),
-      Comb_Hash_Fn(r_comb_hash_fn)
-    {
-      comb_hash_fn_base::notify_resized(size);
-    }
+    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, 
+                  const Comb_Hash_Fn& r_comb_hash_fn) 
+    : Hash_Fn(r_hash_fn), Comb_Hash_Fn(r_comb_hash_fn)
+    { comb_hash_fn_base::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
     void
@@ -153,7 +124,6 @@ namespace pb_ds
     swap(PB_DS_CLASS_C_DEC& other)
     {
       comb_hash_fn_base::swap(other);
-
       std::swap((Hash_Fn& )(*this), (Hash_Fn& )other);
     }
 
@@ -161,85 +131,59 @@ namespace pb_ds
     void
     PB_DS_CLASS_C_DEC::
     notify_resized(size_type size)
-    {
-      comb_hash_fn_base::notify_resized(size);
-    }
+    { comb_hash_fn_base::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
     inline typename PB_DS_CLASS_C_DEC::size_type
     PB_DS_CLASS_C_DEC::
     operator()(const_key_reference r_key) const
-    {
-      return (comb_hash_fn_base::operator()(
-                                           hash_fn_base::operator()(r_key)));
-    }
+    { return (comb_hash_fn_base::operator()(hash_fn_base::operator()(r_key)));}
 
 #undef PB_DS_CLASS_T_DEC
 #undef PB_DS_CLASS_C_DEC
 
-#define PB_DS_CLASS_T_DEC                                              \
-    template<                                                          \
-                                               typename Key,           \
-                                               class Hash_Fn,          \
-                                               class Allocator,        \
-                                               class Comb_Hash_Fn>
-
-#define PB_DS_CLASS_C_DEC                                      \
-    ranged_hash_fn<                                            \
-                                               Key,            \
-                                               Hash_Fn,        \
-                                               Allocator,      \
-                                               Comb_Hash_Fn,   \
-                                               true>
+#define PB_DS_CLASS_T_DEC \
+    template<typename Key, typename Hash_Fn, typename Allocator, \
+            typename Comb_Hash_Fn>
+
+#define PB_DS_CLASS_C_DEC \
+    ranged_hash_fn<Key,Hash_Fn,        Allocator, Comb_Hash_Fn, true>
 
     /**
-     * Specialization 2- The client supplies a hash function and a ranged
-     *    hash function, and requests that hash values be stored.
+     * Specialization 2
+     * The client supplies a hash function and a ranged hash function,
+     * and requests that hash values be stored.
      **/
-    template<typename Key,
-            class Hash_Fn,
-            class Allocator,
-            class Comb_Hash_Fn>
-    class ranged_hash_fn<
-      Key,
-      Hash_Fn,
-      Allocator,
-      Comb_Hash_Fn,
-      true> :
-      public Hash_Fn,
-      public Comb_Hash_Fn
+    template<typename Key, typename Hash_Fn, typename Allocator,
+            typename Comb_Hash_Fn>
+    class ranged_hash_fn<Key, Hash_Fn, Allocator, Comb_Hash_Fn, true> 
+    : public Hash_Fn, public Comb_Hash_Fn
     {
     protected:
       typedef typename Allocator::size_type size_type;
-
-      typedef typename comp_hash_< size_type>::comp_hash comp_hash;
-
+      typedef std::pair<size_type, size_type> comp_hash;
       typedef Hash_Fn hash_fn_base;
-
       typedef Comb_Hash_Fn comb_hash_fn_base;
-
-      typedef typename Allocator::template rebind< Key>::other key_allocator;
-
+      typedef typename Allocator::template rebind<Key>::other key_allocator;
       typedef typename key_allocator::const_reference const_key_reference;
 
-    protected:
-      ranged_hash_fn(size_type size);
+      ranged_hash_fn(size_type);
 
-      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn);
+      ranged_hash_fn(size_type, const Hash_Fn&);
 
-      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+      ranged_hash_fn(size_type, const Hash_Fn&, const Comb_Hash_Fn&);
 
       void
-      swap(PB_DS_CLASS_C_DEC& other);
+      swap(PB_DS_CLASS_C_DEC&);
 
       void
-      notify_resized(size_type size);
+      notify_resized(size_type);
 
       inline comp_hash
-      operator()(const_key_reference r_key) const;
+      operator()(const_key_reference) const;
 
       inline comp_hash
-      operator()(const_key_reference r_key, size_type hash) const;
+      operator()(const_key_reference, size_type) const;
     };
 
     PB_DS_CLASS_T_DEC
@@ -255,9 +199,9 @@ namespace pb_ds
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Hash_Fn(r_hash_fn),
-      Comb_Hash_Fn(r_comb_hash_fn)
+    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, 
+                  const Comb_Hash_Fn& r_comb_hash_fn) 
+    : Hash_Fn(r_hash_fn), Comb_Hash_Fn(r_comb_hash_fn)
     { comb_hash_fn_base::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
@@ -301,48 +245,34 @@ namespace pb_ds
 #undef PB_DS_CLASS_T_DEC
 #undef PB_DS_CLASS_C_DEC
 
-#define PB_DS_CLASS_T_DEC                                      \
-    template<typename Key, class Allocator, class Comb_Hash_Fn>
+#define PB_DS_CLASS_T_DEC \
+    template<typename Key, typename Allocator, typename Comb_Hash_Fn>
 
-#define PB_DS_CLASS_C_DEC                                      \
-    ranged_hash_fn<                                            \
-                                               Key,            \
-                                               null_hash_fn,   \
-                                               Allocator,      \
-                                               Comb_Hash_Fn,   \
-                                               false>
+#define PB_DS_CLASS_C_DEC \
+    ranged_hash_fn<Key,        null_hash_fn, Allocator, Comb_Hash_Fn, false>
 
     /**
-     * Specialization 3- The client does not supply a hash function
-     *    (by specifying null_hash_fn as the Hash_Fn parameter),
-     *    and requests that hash values not be stored.
-
-    **/
-    template<typename Key, class Allocator, class Comb_Hash_Fn>
-    class ranged_hash_fn<
-      Key,
-      null_hash_fn,
-      Allocator,
-      Comb_Hash_Fn,
-      false> :
-      public null_hash_fn,
-      public Comb_Hash_Fn
+     * Specialization 3
+     * The client does not supply a hash function (by specifying
+     * null_hash_fn as the Hash_Fn parameter), and requests that hash
+     * values not be stored.
+     **/
+    template<typename Key, typename Allocator, typename Comb_Hash_Fn>
+    class ranged_hash_fn<Key, null_hash_fn, Allocator, Comb_Hash_Fn, false> 
+    : public null_hash_fn, public Comb_Hash_Fn
     {
     protected:
-
       typedef typename Allocator::size_type size_type;
-
       typedef Comb_Hash_Fn comb_hash_fn_base;
 
-    protected:
-      ranged_hash_fn(size_type size);
+      ranged_hash_fn(size_type);
 
-      ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn);
+      ranged_hash_fn(size_type, const Comb_Hash_Fn&);
 
-      ranged_hash_fn(size_type size, const null_hash_fn& r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+      ranged_hash_fn(size_type, const null_hash_fn&, const Comb_Hash_Fn&);
 
       void
-      swap(PB_DS_CLASS_C_DEC& other);
+      swap(PB_DS_CLASS_C_DEC&);
     };
 
     PB_DS_CLASS_T_DEC
@@ -358,8 +288,9 @@ namespace pb_ds
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const null_hash_fn& r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Comb_Hash_Fn(r_comb_hash_fn)
+    ranged_hash_fn(size_type size, const null_hash_fn& r_null_hash_fn, 
+                  const Comb_Hash_Fn& r_comb_hash_fn) 
+    : Comb_Hash_Fn(r_comb_hash_fn)
     { }
 
     PB_DS_CLASS_T_DEC
@@ -371,47 +302,34 @@ namespace pb_ds
 #undef PB_DS_CLASS_T_DEC
 #undef PB_DS_CLASS_C_DEC
 
-#define PB_DS_CLASS_T_DEC                                      \
-    template<typename Key, class Allocator, class Comb_Hash_Fn>
+#define PB_DS_CLASS_T_DEC \
+    template<typename Key, typename Allocator, typename Comb_Hash_Fn>
 
-#define PB_DS_CLASS_C_DEC                                      \
-    ranged_hash_fn<                                            \
-                                               Key,            \
-                                               null_hash_fn,   \
-                                               Allocator,      \
-                                               Comb_Hash_Fn,   \
-                                               true>
+#define PB_DS_CLASS_C_DEC \
+    ranged_hash_fn<Key,        null_hash_fn, Allocator, Comb_Hash_Fn, true>
 
     /**
-     * Specialization 4- The client does not supply a hash function
-     *    (by specifying null_hash_fn as the Hash_Fn parameter),
-     *    and requests that hash values be stored.
-
-    **/
-    template<typename Key, class Allocator, class Comb_Hash_Fn>
-    class ranged_hash_fn<
-      Key,
-      null_hash_fn,
-      Allocator,
-      Comb_Hash_Fn,
-      true> :
-      public null_hash_fn,
-      public Comb_Hash_Fn
+     * Specialization 4
+     * The client does not supply a hash function (by specifying
+     * null_hash_fn as the Hash_Fn parameter), and requests that hash
+     * values be stored.
+     **/
+    template<typename Key, typename Allocator, typename Comb_Hash_Fn>
+    class ranged_hash_fn<Key, null_hash_fn, Allocator, Comb_Hash_Fn, true> 
+    : public null_hash_fn, public Comb_Hash_Fn
     {
     protected:
       typedef typename Allocator::size_type size_type;
-
       typedef Comb_Hash_Fn comb_hash_fn_base;
 
-    protected:
-      ranged_hash_fn(size_type size);
+      ranged_hash_fn(size_type);
 
-      ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn);
+      ranged_hash_fn(size_type, const Comb_Hash_Fn&);
 
-      ranged_hash_fn(size_type size, const null_hash_fn& r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+      ranged_hash_fn(size_type, const null_hash_fn&, const Comb_Hash_Fn&);
 
       void
-      swap(PB_DS_CLASS_C_DEC& other);
+      swap(PB_DS_CLASS_C_DEC&);
     };
 
     PB_DS_CLASS_T_DEC
@@ -421,14 +339,15 @@ namespace pb_ds
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Comb_Hash_Fn(r_comb_hash_fn)
+    ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn) 
+    : Comb_Hash_Fn(r_comb_hash_fn)
     { }
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const null_hash_fn           & r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Comb_Hash_Fn(r_comb_hash_fn)
+    ranged_hash_fn(size_type size, const null_hash_fn& r_null_hash_fn, 
+                  const Comb_Hash_Fn& r_comb_hash_fn) 
+    : Comb_Hash_Fn(r_comb_hash_fn)
     { }
 
     PB_DS_CLASS_T_DEC
index d4b834dd34f39764cab83ad788d56e2bf2011b17..b665dbf36f8d9786685a5887cd6e94286ab8da5e 100644 (file)
@@ -56,12 +56,8 @@ namespace pb_ds
 {
   namespace detail
   {
-    template<typename Key,
-            typename Hash_Fn,
-            typename Allocator,
-            typename Comb_Probe_Fn,
-            typename Probe_Fn,
-            bool Store_Hash>
+    template<typename Key, typename Hash_Fn, typename Allocator,
+            typename Comb_Probe_Fn, typename Probe_Fn, bool Store_Hash>
     class ranged_probe_fn;
 
 #define PB_DS_CLASS_T_DEC \
@@ -72,8 +68,9 @@ namespace pb_ds
     ranged_probe_fn<Key, Hash_Fn, Allocator, Comb_Probe_Fn, Probe_Fn, false>
 
     /**
-     * Specialization 1- The client supplies a probe function and a ranged
-     *    probe function, and requests that hash values not be stored.
+     * Specialization 1     
+     * The client supplies a probe function and a ranged probe
+     * function, and requests that hash values not be stored.
      **/
     template<typename Key, typename Hash_Fn, typename Allocator,
             typename Comb_Probe_Fn, typename Probe_Fn>
@@ -83,37 +80,32 @@ namespace pb_ds
     {
     protected:
       typedef typename Allocator::size_type size_type;
-
       typedef Comb_Probe_Fn comb_probe_fn_base;
-
       typedef Hash_Fn hash_fn_base;
-
       typedef Probe_Fn probe_fn_base;
-
       typedef typename Allocator::template rebind<Key>::other key_allocator;
-
       typedef typename key_allocator::const_reference const_key_reference;
 
-    protected:
-      ranged_probe_fn(size_type size);
+      ranged_probe_fn(size_type);
 
-      ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn);
+      ranged_probe_fn(size_type, const Hash_Fn&);
 
-      ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn);
+      ranged_probe_fn(size_type, const Hash_Fn&, const Comb_Probe_Fn&);
 
-      ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn);
+      ranged_probe_fn(size_type, const Hash_Fn&, const Comb_Probe_Fn&, 
+                     const Probe_Fn&);
 
       void
-      swap(PB_DS_CLASS_C_DEC& other);
+      swap(PB_DS_CLASS_C_DEC&);
 
       void
-      notify_resized(size_type size);
+      notify_resized(size_type);
 
       inline size_type
-      operator()(const_key_reference r_key) const;
+      operator()(const_key_reference) const;
 
       inline size_type
-      operator()(const_key_reference r_key, size_type hash, size_type i) const;
+      operator()(const_key_reference, size_type, size_type) const;
     };
 
     PB_DS_CLASS_T_DEC
@@ -123,23 +115,23 @@ namespace pb_ds
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn) :
-      Hash_Fn(r_hash_fn)
+    ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn) 
+    : Hash_Fn(r_hash_fn)
     { Comb_Probe_Fn::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn) :
-      Hash_Fn(r_hash_fn),
-      Comb_Probe_Fn(r_comb_probe_fn)
+    ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, 
+                   const Comb_Probe_Fn& r_comb_probe_fn) 
+    : Hash_Fn(r_hash_fn), Comb_Probe_Fn(r_comb_probe_fn)
     { comb_probe_fn_base::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn) :
-      Hash_Fn(r_hash_fn),
-      Comb_Probe_Fn(r_comb_probe_fn),
-      Probe_Fn(r_probe_fn)
+    ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, 
+                   const Comb_Probe_Fn& r_comb_probe_fn, 
+                   const Probe_Fn& r_probe_fn) 
+    : Hash_Fn(r_hash_fn), Comb_Probe_Fn(r_comb_probe_fn), Probe_Fn(r_probe_fn)
     { comb_probe_fn_base::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
@@ -175,8 +167,8 @@ namespace pb_ds
 #undef PB_DS_CLASS_C_DEC
 
 #define PB_DS_CLASS_T_DEC \
-    template<typename Key, class Hash_Fn, class Allocator,     \
-            class Comb_Probe_Fn, class Probe_Fn>
+    template<typename Key, typename Hash_Fn, typename Allocator, \
+            typename Comb_Probe_Fn, typename Probe_Fn>
 
 #define PB_DS_CLASS_C_DEC \
     ranged_probe_fn<Key, Hash_Fn, Allocator, Comb_Probe_Fn, Probe_Fn, true>
@@ -193,44 +185,37 @@ namespace pb_ds
     {
     protected:
       typedef typename Allocator::size_type size_type;
-
-      typedef typename comp_hash_<size_type>::comp_hash comp_hash;
-
+      typedef std::pair<size_type, size_type> comp_hash;
       typedef Comb_Probe_Fn comb_probe_fn_base;
-
       typedef Hash_Fn hash_fn_base;
-
       typedef Probe_Fn probe_fn_base;
-
       typedef typename Allocator::template rebind<Key>::other key_allocator;
-
       typedef typename key_allocator::const_reference const_key_reference;
 
-      ranged_probe_fn(size_type size);
+      ranged_probe_fn(size_type);
 
-      ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn);
+      ranged_probe_fn(size_type, const Hash_Fn&);
 
-      ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn
-                     const Comb_Probe_Fn& r_comb_probe_fn);
+      ranged_probe_fn(size_type, const Hash_Fn&
+                     const Comb_Probe_Fn&);
 
-      ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, 
-                     const Comb_Probe_Fn& r_comb_probe_fn, 
-                     const Probe_Fn& r_probe_fn);
+      ranged_probe_fn(size_type, const Hash_Fn&, const Comb_Probe_Fn&, 
+                     const Probe_Fn&);
 
       void
-      swap(PB_DS_CLASS_C_DEC& other);
+      swap(PB_DS_CLASS_C_DEC&);
 
       void
-      notify_resized(size_type size);
+      notify_resized(size_type);
 
       inline comp_hash
-      operator()(const_key_reference r_key) const;
+      operator()(const_key_reference) const;
 
       inline size_type
-      operator()(const_key_reference r_key, size_type hash, size_type i) const;
+      operator()(const_key_reference, size_type, size_type) const;
 
       inline size_type
-      operator()(const_key_reference r_key, size_type hash) const;
+      operator()(const_key_reference, size_type) const;
     };
 
     PB_DS_CLASS_T_DEC
@@ -240,26 +225,23 @@ namespace pb_ds
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
-    ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn) :
-      Hash_Fn(r_hash_fn)
+    ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn) 
+    : Hash_Fn(r_hash_fn)
     { Comb_Probe_Fn::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, 
-                   const Comb_Probe_Fn& r_comb_probe_fn) :
-      Hash_Fn(r_hash_fn),
-      Comb_Probe_Fn(r_comb_probe_fn)
+                   const Comb_Probe_Fn& r_comb_probe_fn) 
+    : Hash_Fn(r_hash_fn), Comb_Probe_Fn(r_comb_probe_fn)
     { comb_probe_fn_base::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
     PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, 
                    const Comb_Probe_Fn& r_comb_probe_fn, 
-                   const Probe_Fn& r_probe_fn) :
-      Hash_Fn(r_hash_fn),
-      Comb_Probe_Fn(r_comb_probe_fn),
-      Probe_Fn(r_probe_fn)
+                   const Probe_Fn& r_probe_fn) 
+    : Hash_Fn(r_hash_fn), Comb_Probe_Fn(r_comb_probe_fn), Probe_Fn(r_probe_fn)
     { comb_probe_fn_base::notify_resized(size); }
 
     PB_DS_CLASS_T_DEC
@@ -312,8 +294,9 @@ namespace pb_ds
 #undef PB_DS_CLASS_C_DEC
 
     /**
-     * Specialization 3 and 4- The client does not supply a hash function or
-     *    probe function, and requests that hash values not be stored.
+     * Specialization 3 and 4
+     * The client does not supply a hash function or probe function,
+     * and requests that hash values not be stored.
      **/
     template<typename Key, typename Allocator, typename Comb_Probe_Fn>
     class ranged_probe_fn<Key, null_hash_fn, Allocator, Comb_Probe_Fn, 
@@ -322,23 +305,20 @@ namespace pb_ds
     {
     protected:
       typedef typename Allocator::size_type size_type;
-
       typedef Comb_Probe_Fn comb_probe_fn_base;
-
       typedef typename Allocator::template rebind<Key>::other key_allocator;
-
       typedef typename key_allocator::const_reference const_key_reference;
 
       ranged_probe_fn(size_type size)
       { Comb_Probe_Fn::notify_resized(size); }
 
-      ranged_probe_fn(size_type size, const Comb_Probe_Fn& r_comb_probe_fn)
+      ranged_probe_fn(size_type, const Comb_Probe_Fn& r_comb_probe_fn)
       : Comb_Probe_Fn(r_comb_probe_fn)
       { }
 
-      ranged_probe_fn(size_type size, const null_hash_fn& r_null_hash_fn
+      ranged_probe_fn(size_type, const null_hash_fn&
                      const Comb_Probe_Fn& r_comb_probe_fn, 
-                     const null_probe_fn& r_null_probe_fn)
+                     const null_probe_fn&)
       : Comb_Probe_Fn(r_comb_probe_fn)
       { }
 
index 1a7d2b5d2dfb52ad06b2f5aa6ba8564f771c533f..8272c8a71a4c40ebfeff66e6941fb943e08fadb6 100644 (file)
@@ -65,8 +65,7 @@ namespace pb_ds
     struct types_traits 
     : public vt_base_selector<Key, Mapped, Alloc, Store_Extra>::type
     {
-
-      typedef typename Alloc::template rebind< Key>::other key_allocator;
+      typedef typename Alloc::template rebind<Key>::other key_allocator;
       typedef typename key_allocator::value_type key_type;
       typedef typename key_allocator::pointer key_pointer;
       typedef typename key_allocator::const_pointer const_key_pointer;
@@ -74,11 +73,11 @@ namespace pb_ds
       typedef typename key_allocator::const_reference const_key_reference;
       typedef typename Alloc::size_type size_type;
 
+      // Extra value (used when the extra value is stored with each value).
+      typedef std::pair<size_type, size_type> comp_hash;
+
       integral_constant<int, Store_Extra> m_store_extra_indicator;
       typename no_throw_copies<Key, Mapped>::indicator m_no_throw_copies_indicator;
-
-      // Extra value (used when the extra value is stored with each value).
-      typedef typename comp_hash_<size_type>::comp_hash comp_hash;
     };
   } // namespace detail
 } // namespace pb_ds