Patchwork RE :Re: RE :Re: hashtable local iterator

login
register
mail settings
Submitter Paolo Carlini
Date Dec. 29, 2011, 10:04 p.m.
Message ID <4EFCE3E8.2010306@oracle.com>
Download mbox | patch
Permalink /patch/133597/
State New
Headers show

Comments

Paolo Carlini - Dec. 29, 2011, 10:04 p.m.
... applied the below (sanity checked x86_64-linux).

Thanks,
Paolo.

///////////////////
2011-12-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/hashtable_policy.h (struct _Ebo_helper<>): Don't use
	_N, badname on Solaris; minor stylistic changes.

Patch

Index: include/bits/hashtable_policy.h
===================================================================
--- include/bits/hashtable_policy.h	(revision 182733)
+++ include/bits/hashtable_policy.h	(working copy)
@@ -515,45 +515,45 @@ 
 
   // Helper class using EBO when it is not forbidden, type is not final,
   // and when it worth it, type is empty.
-  template<int _N, typename _Tp,
+  template<int _Nm, typename _Tp,
 	   bool __use_ebo = !__is_final(_Tp) && __is_empty(_Tp)>
     struct _Ebo_helper;
 
-  // Specialization using EBO
-  template<int _N, typename _Tp>
-    struct _Ebo_helper<_N, _Tp, true> : _Tp
+  // Specialization using EBO.
+  template<int _Nm, typename _Tp>
+    struct _Ebo_helper<_Nm, _Tp, true> : _Tp
     {
       _Ebo_helper() = default;
       _Ebo_helper(const _Tp& __tp) : _Tp(__tp)
       { }
 
       static const _Tp&
-      _S_cget(const _Ebo_helper<_N, _Tp, true>& __eboh)
+      _S_cget(const _Ebo_helper& __eboh)
       { return static_cast<const _Tp&>(__eboh); }
 
       static _Tp&
-      _S_get(_Ebo_helper<_N, _Tp, true>& __eboh)
+      _S_get(_Ebo_helper& __eboh)
       { return static_cast<_Tp&>(__eboh); }
     };
 
-  // Specialization not using EBO
-  template<int _N, typename _Tp>
-    struct _Ebo_helper<_N, _Tp, false>
+  // Specialization not using EBO.
+  template<int _Nm, typename _Tp>
+    struct _Ebo_helper<_Nm, _Tp, false>
     {
       _Ebo_helper() = default;
-      _Ebo_helper(const _Tp& __tp) : m_tp(__tp)
+      _Ebo_helper(const _Tp& __tp) : __m_tp(__tp)
       { }
 
       static const _Tp&
-      _S_cget(const _Ebo_helper<_N, _Tp, false>& __eboh)
-      { return __eboh.m_tp; }
+      _S_cget(const _Ebo_helper& __eboh)
+      { return __eboh.__m_tp; }
 
       static _Tp&
-      _S_get(_Ebo_helper<_N, _Tp, false>& __eboh)
-      { return __eboh.m_tp; }
+      _S_get(_Ebo_helper& __eboh)
+      { return __eboh.__m_tp; }
 
     private:
-      _Tp m_tp;
+      _Tp __m_tp;
     };
 
   // Class template _Hash_code_base.  Encapsulates two policy issues that
@@ -583,7 +583,7 @@ 
   template<typename _Key, typename _Value, typename _ExtractKey, 
 	   typename _H1, typename _H2, typename _Hash>
     struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>
-      : _Ebo_helper<0, _ExtractKey>, _Ebo_helper<1, _Hash>
+    : _Ebo_helper<0, _ExtractKey>, _Ebo_helper<1, _Hash>
     {
     private:
       typedef _Ebo_helper<0, _ExtractKey> _EboExtractKey;
@@ -655,7 +655,7 @@ 
 	   typename _H1, typename _H2>
     struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
 			   _Default_ranged_hash, false>
-      : _Ebo_helper<0, _ExtractKey>, _Ebo_helper<1, _H1>, _Ebo_helper<2, _H2>
+    : _Ebo_helper<0, _ExtractKey>, _Ebo_helper<1, _H1>, _Ebo_helper<2, _H2>
     {
     private:
       typedef _Ebo_helper<0, _ExtractKey> _EboExtractKey;
@@ -732,7 +732,7 @@ 
 	   typename _H1, typename _H2>
     struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2,
 			   _Default_ranged_hash, true>
-      : _Ebo_helper<0, _ExtractKey>, _Ebo_helper<1, _H1>, _Ebo_helper<2, _H2>
+    : _Ebo_helper<0, _ExtractKey>, _Ebo_helper<1, _H1>, _Ebo_helper<2, _H2>
     {
     private:
       typedef _Ebo_helper<0, _ExtractKey> _EboExtractKey;
@@ -835,9 +835,9 @@ 
 	   typename _H1, typename _H2, typename _Hash,
 	   bool __cache_hash_code>
   struct _Hashtable_base
-    : _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
-		      __cache_hash_code>,
-      _Ebo_helper<0, _Equal>
+  : _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash,
+		    __cache_hash_code>,
+    _Ebo_helper<0, _Equal>
   {
   private:
     typedef _Ebo_helper<0, _Equal> _EboEqual;