Hi,
not necessary anymore thanks to the resolution of c++/51213. Tested
x86_64-linux multilib, committed.
Thanks,
Paolo.
///////////////////////
2012-10-12 Paolo Carlini <paolo.carl...@oracle.com>
* include/bits/hashtable_policy.h: Revert libstdc++/53067 quick
hacks thanks to the resolution of c++/51213.
Index: include/bits/hashtable_policy.h
===================================================================
--- include/bits/hashtable_policy.h (revision 192378)
+++ include/bits/hashtable_policy.h (working copy)
@@ -921,8 +921,7 @@
/// Specialization using EBO.
template<int _Nm, typename _Tp>
struct _Hashtable_ebo_helper<_Nm, _Tp, true>
- // See PR53067.
- : public _Tp
+ : private _Tp
{
_Hashtable_ebo_helper() = default;
@@ -989,9 +988,8 @@
template<typename _Key, typename _Value, typename _ExtractKey,
typename _H1, typename _H2, typename _Hash>
struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>
- // See PR53067.
- : public _Hashtable_ebo_helper<0, _ExtractKey>,
- public _Hashtable_ebo_helper<1, _Hash>
+ : private _Hashtable_ebo_helper<0, _ExtractKey>,
+ private _Hashtable_ebo_helper<1, _Hash>
{
private:
typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
@@ -1066,10 +1064,9 @@
typename _H1, typename _H2>
struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
_Default_ranged_hash, false>
- // See PR53067.
- : public _Hashtable_ebo_helper<0, _ExtractKey>,
- public _Hashtable_ebo_helper<1, _H1>,
- public _Hashtable_ebo_helper<2, _H2>
+ : private _Hashtable_ebo_helper<0, _ExtractKey>,
+ private _Hashtable_ebo_helper<1, _H1>,
+ private _Hashtable_ebo_helper<2, _H2>
{
private:
typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
@@ -1150,10 +1147,9 @@
typename _H1, typename _H2>
struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
_Default_ranged_hash, true>
- // See PR53067.
- : public _Hashtable_ebo_helper<0, _ExtractKey>,
- public _Hashtable_ebo_helper<1, _H1>,
- public _Hashtable_ebo_helper<2, _H2>
+ : private _Hashtable_ebo_helper<0, _ExtractKey>,
+ private _Hashtable_ebo_helper<1, _H1>,
+ private _Hashtable_ebo_helper<2, _H2>
{
private:
typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey;
@@ -1272,8 +1268,7 @@
typename _H1, typename _H2, typename _Hash>
struct _Local_iterator_base<_Key, _Value, _ExtractKey,
_H1, _H2, _Hash, true>
- // See PR53067.
- : public _H2
+ : private _H2
{
_Local_iterator_base() = default;
_Local_iterator_base(_Hash_node<_Value, true>* __p,
@@ -1305,9 +1300,8 @@
typename _H1, typename _H2, typename _Hash>
struct _Local_iterator_base<_Key, _Value, _ExtractKey,
_H1, _H2, _Hash, false>
- // See PR53067.
- : public _Hash_code_base<_Key, _Value, _ExtractKey,
- _H1, _H2, _Hash, false>
+ : private _Hash_code_base<_Key, _Value, _ExtractKey,
+ _H1, _H2, _Hash, false>
{
_Local_iterator_base() = default;
_Local_iterator_base(_Hash_node<_Value, false>* __p,
@@ -1470,10 +1464,9 @@
typename _ExtractKey, typename _Equal,
typename _H1, typename _H2, typename _Hash, typename _Traits>
struct _Hashtable_base
- // See PR53067.
- : public _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
- _Traits::__hash_cached::value>,
- public _Hashtable_ebo_helper<0, _Equal>
+ : public _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
+ _Traits::__hash_cached::value>,
+ private _Hashtable_ebo_helper<0, _Equal>
{
public:
typedef _Key key_type;