aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2006-10-02 14:53:41 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2006-10-02 14:53:41 +0000
commit1f1a03efff45426819b4de494096201864fb016e (patch)
tree3f39c7c9052cbdbf908e91459ba8cc9bc6e739df
parent93a8f49bfad3672fa3ae104b5ff9f086652794e1 (diff)
downloadgcc-1f1a03efff45426819b4de494096201864fb016e.zip
gcc-1f1a03efff45426819b4de494096201864fb016e.tar.gz
gcc-1f1a03efff45426819b4de494096201864fb016e.tar.bz2
basic_types.hpp (comp_hash_): Remove, format.
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
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp31
-rw-r--r--libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp277
-rw-r--r--libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp118
-rw-r--r--libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp9
5 files changed, 161 insertions, 283 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 8115f0d..d756a7e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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.
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp b/libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp
index 817ea25..69288ce 100644
--- a/libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp
@@ -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>
@@ -218,14 +200,9 @@ namespace pb_ds
#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
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
index 5d52485..179e593 100644
--- a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
@@ -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
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
index d4b834d..b665dbf 100644
--- a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
@@ -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)
{ }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
index 1a7d2b5..8272c8a 100644
--- a/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
@@ -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