This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[v3] Move rope, slist, hash_map, hash_set to __gnu_cxx


Hi,

this, quite boring patch, moves all the extensions already present inside
include/ext to namespace __gnu_cxx. This needed some using declarations and
other tweaks to bring there the required namespace std bits.

Tested i686-pc-linux-gnu, approved by Gabriel Dos Reis and committed.

Cheers,
Paolo.

/////////////

2001-12-31  Paolo Carlini  <pcarlini@unitus.it>

        * include/ext/hash_map:  Move into __gnu_cxx,
        tweak, add using declarations.
        * include/ext/hash_set:  Ditto.
        * include/ext/ropeimpl.h:  Ditto.
        * include/ext/stl_hash_fun.h:  Ditto.
        * include/ext/stl_hashtable.h:  Ditto.
        * include/ext/stl_rope.h:  Ditto.
        * src/ext-inst.cc: Tweak.
        * testsuite/ext/rope.cc: Tweak.

2001-12-31  Paolo Carlini  <pcarlini@unitus.it>

        * include/ext/slist:  Move into __gnu_cxx,
        tweak, add using declarations.


===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/ext/hash_map,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- gcc/libstdc++-v3/include/ext/hash_map       2001/11/20 00:51:37     1.9
+++ gcc/libstdc++-v3/include/ext/hash_map       2001/12/31 10:22:00     1.10
@@ -64,8 +64,12 @@
 #include <ext/stl_hashtable.h>
 #include <bits/concept_check.h>

-namespace std
+namespace __gnu_cxx
 {
+using std::equal_to;
+using std::allocator;
+using std::pair;
+using std::_Select1st;

 // Forward declaration of equality operator; needed for friend declaration.

@@ -371,14 +375,17 @@
   __hm1.swap(__hm2);
 }

+} // namespace __gnu_cxx

+namespace std
+{
 // Specialization of insert_iterator so that it will work for hash_map
 // and hash_multimap.

 template <class _Key, class _Tp, class _HashFn,  class _EqKey, class _Alloc>
-class insert_iterator<hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > {
+class insert_iterator<__gnu_cxx::hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> >
{
 protected:
-  typedef hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container;
+  typedef __gnu_cxx::hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container;
   _Container* container;
 public:
   typedef _Container          container_type;
@@ -402,9 +409,9 @@
 };

 template <class _Key, class _Tp, class _HashFn,  class _EqKey, class _Alloc>
-class insert_iterator<hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > {
+class insert_iterator<__gnu_cxx::hash_multimap<_Key, _Tp, _HashFn, _EqKey,
_Alloc> > {
 protected:
-  typedef hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container;
+  typedef __gnu_cxx::hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc>
_Container;
   _Container* container;
   typename _Container::iterator iter;
 public:

===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/ext/hash_set,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- gcc/libstdc++-v3/include/ext/hash_set       2001/11/20 00:51:37     1.9
+++ gcc/libstdc++-v3/include/ext/hash_set       2001/12/31 10:22:00     1.10
@@ -64,8 +64,12 @@
 #include <ext/stl_hashtable.h>
 #include <bits/concept_check.h>

-namespace std
+namespace __gnu_cxx
 {
+using std::equal_to;
+using std::allocator;
+using std::pair;
+using std::_Identity;

 // Forward declaration of equality operator; needed for friend declaration.

@@ -361,13 +365,17 @@
   __hs1.swap(__hs2);
 }

+} // namespace __gnu_cxx
+
+namespace std
+{
 // Specialization of insert_iterator so that it will work for hash_set
 // and hash_multiset.

 template <class _Value, class _HashFcn, class _EqualKey, class _Alloc>
-class insert_iterator<hash_set<_Value, _HashFcn, _EqualKey, _Alloc> > {
+class insert_iterator<__gnu_cxx::hash_set<_Value, _HashFcn, _EqualKey, _Alloc>
> {
 protected:
-  typedef hash_set<_Value, _HashFcn, _EqualKey, _Alloc> _Container;
+  typedef __gnu_cxx::hash_set<_Value, _HashFcn, _EqualKey, _Alloc> _Container;
   _Container* container;
 public:
   typedef _Container          container_type;
@@ -391,9 +399,9 @@
 };

 template <class _Value, class _HashFcn, class _EqualKey, class _Alloc>
-class insert_iterator<hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > {
+class insert_iterator<__gnu_cxx::hash_multiset<_Value, _HashFcn, _EqualKey,
_Alloc> > {
 protected:
-  typedef hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> _Container;
+  typedef __gnu_cxx::hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc>
_Container;
   _Container* container;
   typename _Container::iterator iter;
 public:

===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/ext/ropeimpl.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- gcc/libstdc++-v3/include/ext/ropeimpl.h     2001/12/13 00:41:02     1.11
+++ gcc/libstdc++-v3/include/ext/ropeimpl.h     2001/12/31 10:22:00     1.12
@@ -49,8 +49,17 @@
 #include <bits/std_iostream.h>
 #include <bits/functexcept.h>

-namespace std
+namespace __gnu_cxx
 {
+using std::size_t;
+using std::printf;
+using std::basic_ostream;
+using std::__throw_length_error;
+using std::__alloc;
+using std::_Destroy;
+using std::uninitialized_fill_n;
+using std::lexicographical_compare_3way;
+using std::uninitialized_copy_n;

 // Set buf_start, buf_end, and buf_ptr appropriately, filling tmp_buf
 // if necessary.  Assumes _M_path_end[leaf_index] and leaf_pos are correct.
@@ -837,13 +846,13 @@
                _RopeRep* __left =  __conc->_M_left;
                size_t __left_len = __left->_M_size;
                if (__begin < __left_len) {
-                   size_t __left_end = min(__left_len, __end);
+                   size_t __left_end = std::min(__left_len, __end);
                    if (!_S_apply_to_pieces(__c, __left, __begin, __left_end))
                        return false;
                }
                if (__end > __left_len) {
                    _RopeRep* __right =  __conc->_M_right;
-                   size_t __right_start = max(__left_len, __begin);
+                   size_t __right_start = std::max(__left_len, __begin);
                    if (!_S_apply_to_pieces(__c, __right,
                                         __right_start - __left_len,
                                         __end - __left_len)) {
@@ -901,7 +910,7 @@
                                             const rope<_CharT, _Alloc>& __r)
 {
     size_t __w = __o.width();
-    bool __left = bool(__o.flags() & ios::left);
+    bool __left = bool(__o.flags() & std::ios::left);
     size_t __pad_len;
     size_t __rope_len = __r.size();
       _Rope_insert_char_consumer<_CharT, _Traits> __c(__o);
@@ -974,7 +983,7 @@
        case _RopeRep::_S_leaf:
            {
                _RopeLeaf* __l = (_RopeLeaf*)__r;
-               return copy_n(__l->_M_data, __l->_M_size, __buffer).second;
+               return std::copy_n(__l->_M_data, __l->_M_size, __buffer).second;

            }
        case _RopeRep::_S_function:
        case _RopeRep::_S_substringfn:
@@ -1449,7 +1458,7 @@
        _M_tree_ptr->_M_c_string = __result;
 #   else
       if ((__old_c_string = (__GC_CONST _CharT*)
-             _Atomic_swap((unsigned long *)(&(_M_tree_ptr->_M_c_string)),
+             std::_Atomic_swap((unsigned long *)(&(_M_tree_ptr->_M_c_string)),
                          (unsigned long)__result)) != 0) {
        // It must have been added in the interim.  Hence it had to have been
        // separately allocated.  Deallocate the old copy, since we just
@@ -1530,7 +1539,7 @@
 }
 # endif

-} // namespace std
+} // namespace __gnu_cxx

 // Local Variables:
 // mode:C++

===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/ext/stl_hash_fun.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- gcc/libstdc++-v3/include/ext/stl_hash_fun.h 2001/11/20 00:51:37     1.6
+++ gcc/libstdc++-v3/include/ext/stl_hash_fun.h 2001/12/31 10:22:00     1.7
@@ -63,8 +63,9 @@

 #include <bits/std_cstddef.h>

-namespace std
+namespace __gnu_cxx
 {
+using std::size_t;

 template <class _Key> struct hash { };

@@ -115,7 +116,7 @@
   size_t operator()(unsigned long __x) const { return __x; }
 };

-} // namespace std
+} // namespace __gnu_cxx

 #endif /* _CPP_BITS_STL_HASH_FUN_H */


===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/ext/stl_hashtable.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- gcc/libstdc++-v3/include/ext/stl_hashtable.h        2001/12/06 20:29:31
1.11
+++ gcc/libstdc++-v3/include/ext/stl_hashtable.h        2001/12/31 10:22:00
1.12
@@ -74,8 +74,18 @@
 #include <bits/stl_vector.h>
 #include <ext/stl_hash_fun.h>

-namespace std
+namespace __gnu_cxx
 {
+using std::size_t;
+using std::ptrdiff_t;
+using std::forward_iterator_tag;
+using std::input_iterator_tag;
+using std::_Alloc_traits;
+using std::_Construct;
+using std::_Destroy;
+using std::distance;
+using std::vector;
+using std::pair;

 template <class _Val>
 struct _Hashtable_node
@@ -85,7 +95,7 @@
 };

 template <class _Val, class _Key, class _HashFcn,
-          class _ExtractKey, class _EqualKey, class _Alloc = __alloc>
+          class _ExtractKey, class _EqualKey, class _Alloc = std::__alloc>
 class hashtable;

 template <class _Val, class _Key, class _HashFcn,
@@ -188,7 +198,7 @@
 {
   const unsigned long* __first = __stl_prime_list;
   const unsigned long* __last = __stl_prime_list + (int)__stl_num_primes;
-  const unsigned long* pos = lower_bound(__first, __last, __n);
+  const unsigned long* pos = std::lower_bound(__first, __last, __n);
   return pos == __last ? *(__last - 1) : *pos;
 }

@@ -964,7 +974,7 @@
     }
 }

-} // namespace std
+} // namespace __gnu_cxx

 #endif /* __SGI_STL_INTERNAL_HASHTABLE_H */


===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/ext/stl_rope.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- gcc/libstdc++-v3/include/ext/stl_rope.h     2001/12/21 13:08:35     1.13
+++ gcc/libstdc++-v3/include/ext/stl_rope.h     2001/12/31 10:22:00     1.14
@@ -61,8 +61,17 @@
 #   define __GC_CONST   // constant except for deallocation
 # endif

-namespace std
+namespace __gnu_cxx
 {
+using std::size_t;
+using std::ptrdiff_t;
+using std::allocator;
+using std::iterator;
+using std::reverse_iterator;
+using std::_Alloc_traits;
+using std::_Destroy;
+using std::_Refcount_Base;
+using std::uninitialized_copy_n;

 // The _S_eos function is used for those functions that
 // convert to/from C-like strings to detect the end of the string.
@@ -122,7 +131,7 @@
 // little like containers.

 template<class _Sequence, size_t _Buf_sz = 100>
-class sequence_buffer : public
iterator<output_iterator_tag,void,void,void,void>
+class sequence_buffer : public
iterator<std::output_iterator_tag,void,void,void,void>
 {
     public:
         typedef typename _Sequence::value_type value_type;
@@ -316,7 +325,7 @@
 // The result has refcount 0.
 template<class _CharT, class _Alloc>
 struct _Rope_Concat_fn
-       : public binary_function<rope<_CharT,_Alloc>, rope<_CharT,_Alloc>,
+       : public std::binary_function<rope<_CharT,_Alloc>, rope<_CharT,_Alloc>,
                                      rope<_CharT,_Alloc> > {
         rope<_CharT,_Alloc> operator() (const rope<_CharT,_Alloc>& __x,
                                 const rope<_CharT,_Alloc>& __y) {
@@ -601,7 +610,7 @@
                              allocator_type __a)

       : _Rope_RopeRep<_CharT,_Alloc>(_S_concat,
-                                     max(__l->_M_depth, __r->_M_depth) + 1,
+                                     std::max(__l->_M_depth, __r->_M_depth) +
1,
                                      false,
                                      __l->_M_size + __r->_M_size, __a),
         _M_left(__l), _M_right(__r)
@@ -838,7 +847,7 @@

 template<class _CharT, class _Alloc>
 class _Rope_iterator_base
-  : public iterator<random_access_iterator_tag, _CharT>
+  : public iterator<std::random_access_iterator_tag, _CharT>
 {
     friend class rope<_CharT,_Alloc>;
   public:
@@ -1538,7 +1547,7 @@
         {
             _CharT* __buf = _Data_allocate(_S_rounded_up_size(1));

-            _Construct(__buf, __c);
+            std::_Construct(__buf, __c);
             try {
                 _M_tree_ptr = _S_new_RopeLeaf(__buf, 1, __a);
             }
@@ -2107,8 +2116,9 @@
         size_type find(_CharT __c, size_type __pos = 0) const;
         size_type find(const _CharT* __s, size_type __pos = 0) const {
             size_type __result_pos;
-            const_iterator __result = search(const_begin() + __pos,
const_end(),
-                                           __s, __s + _S_char_ptr_len(__s));
+            const_iterator __result =
+             std::search(const_begin() + __pos, const_end(),
+                         __s, __s + _S_char_ptr_len(__s));
             __result_pos = __result.index();
 #           ifndef __STL_OLD_ROPE_SEMANTICS
                 if (__result_pos == size()) __result_pos = npos;
@@ -2429,8 +2439,8 @@
 }

 template<class _CharT, class _Traits, class _Alloc>
-basic_ostream<_CharT, _Traits>& operator<<
-                                        (basic_ostream<_CharT, _Traits>& __o,
+std::basic_ostream<_CharT, _Traits>& operator<<
+                                        (std::basic_ostream<_CharT, _Traits>&
__o,
                                          const rope<_CharT, _Alloc>& __r);

 typedef rope<char> crope;
@@ -2475,7 +2485,7 @@
   }
 };

-} // namespace std
+} // namespace __gnu_cxx

 # include <ext/ropeimpl.h>

===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/src/ext-inst.cc,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gcc/libstdc++-v3/src/ext-inst.cc    2001/12/04 20:13:40     1.1
+++ gcc/libstdc++-v3/src/ext-inst.cc    2001/12/31 10:22:00     1.2
@@ -35,5 +35,6 @@

 namespace std
 {
-  template const unsigned long rope<char, std::allocator<char> >::_S_min_len;
+  template
+  const unsigned long __gnu_cxx::rope<char, std::allocator<char> >::_S_min_len;

 } // namespace std

===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/ext/rope.cc,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gcc/libstdc++-v3/testsuite/ext/rope.cc      2001/10/03 21:19:31     1.1
+++ gcc/libstdc++-v3/testsuite/ext/rope.cc      2001/12/31 10:22:00     1.2
@@ -25,7 +25,7 @@

 void test01()
 {
-  std::crope foo;
+  __gnu_cxx::crope foo;
   foo += "bar";
   const char* data = foo.c_str();
   std::cout << data << std::endl;

===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/include/ext/slist,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- gcc/libstdc++-v3/include/ext/slist  2001/11/20 00:51:37     1.12
+++ gcc/libstdc++-v3/include/ext/slist  2001/12/31 10:26:01     1.13
@@ -55,8 +55,14 @@
 #include <bits/stl_uninitialized.h>
 #include <bits/concept_check.h>

-namespace std
+namespace __gnu_cxx
 {
+using std::size_t;
+using std::ptrdiff_t;
+using std::_Alloc_traits;
+using std::_Construct;
+using std::_Destroy;
+using std::allocator;

 struct _Slist_node_base
 {
@@ -145,9 +151,9 @@

 struct _Slist_iterator_base
 {
-  typedef size_t               size_type;
-  typedef ptrdiff_t            difference_type;
-  typedef forward_iterator_tag iterator_category;
+  typedef size_t                    size_type;
+  typedef ptrdiff_t                 difference_type;
+  typedef std::forward_iterator_tag iterator_category;

   _Slist_node_base* _M_node;

@@ -297,7 +303,7 @@
 private:
   typedef _Slist_base<_Tp,_Alloc> _Base;
 public:
-  typedef _Tp                value_type;
+  typedef _Tp               value_type;
   typedef value_type*       pointer;
   typedef const value_type* const_pointer;
   typedef value_type&       reference;
@@ -707,8 +713,8 @@
 inline bool
 operator<(const slist<_Tp,_Alloc>& _SL1, const slist<_Tp,_Alloc>& _SL2)
 {
-  return lexicographical_compare(_SL1.begin(), _SL1.end(),
-                                 _SL2.begin(), _SL2.end());
+  return std::lexicographical_compare(_SL1.begin(), _SL1.end(),
+                                     _SL2.begin(), _SL2.end());
 }

 template <class _Tp, class _Alloc>
@@ -897,13 +903,17 @@
   }
 }

+} // namespace __gnu_cxx
+
+namespace std
+{
 // Specialization of insert_iterator so that insertions will be constant
 // time rather than linear time.

 template <class _Tp, class _Alloc>
-class insert_iterator<slist<_Tp, _Alloc> > {
+class insert_iterator<__gnu_cxx::slist<_Tp, _Alloc> > {
 protected:
-  typedef slist<_Tp, _Alloc> _Container;
+  typedef __gnu_cxx::slist<_Tp, _Alloc> _Container;
   _Container* container;
   typename _Container::iterator iter;
 public:
@@ -932,7 +942,7 @@
   insert_iterator<_Container>& operator++(int) { return *this; }
 };

-} // namespace std
+} // namespace std

 #endif /* __SGI_STL_INTERNAL_SLIST_H */




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]