OSDN Git Service

2006-09-21 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Sep 2006 17:54:50 +0000 (17:54 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Sep 2006 17:54:50 +0000 (17:54 +0000)
* include/ext/hash_map: Remove forward declaration of equality
operator, not needed for friendship of all its instances.
* include/ext/hash_set: Likewise.
* include/bits/stl_set.h: Likewise for equality operator and
operator less.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_queue.h: Likewise.
* include/bits/stl_stack.h: Likewise.
* include/bits/streambuf_iterator.h: Likewise for copy.
* include/std/std_streambuf.h: Likewise for __copy_aux and find.
* include/tr1/boost_shared_ptr.h: Likewise for get_deleter.
* include/tr1/random: Likewise, remove all forward declarations
of inserters and extractors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117116 138bc75d-0d04-0410-961f-82ee72b054a4

12 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_multimap.h
libstdc++-v3/include/bits/stl_multiset.h
libstdc++-v3/include/bits/stl_queue.h
libstdc++-v3/include/bits/stl_set.h
libstdc++-v3/include/bits/stl_stack.h
libstdc++-v3/include/bits/streambuf_iterator.h
libstdc++-v3/include/ext/hash_map
libstdc++-v3/include/ext/hash_set
libstdc++-v3/include/std/std_streambuf.h
libstdc++-v3/include/tr1/boost_shared_ptr.h
libstdc++-v3/include/tr1/random

index ca26e47..e85e75a 100644 (file)
@@ -1,5 +1,22 @@
 2006-09-21  Paolo Carlini  <pcarlini@suse.de>
 
+       * include/ext/hash_map: Remove forward declaration of equality
+       operator, not needed for friendship of all its instances.
+       * include/ext/hash_set: Likewise.
+       * include/bits/stl_set.h: Likewise for equality operator and
+       operator less.
+       * include/bits/stl_multiset.h: Likewise.
+       * include/bits/stl_multimap.h: Likewise.
+       * include/bits/stl_queue.h: Likewise.
+       * include/bits/stl_stack.h: Likewise.
+       * include/bits/streambuf_iterator.h: Likewise for copy.
+       * include/std/std_streambuf.h: Likewise for __copy_aux and find.
+       * include/tr1/boost_shared_ptr.h: Likewise for get_deleter.
+       * include/tr1/random: Likewise, remove all forward declarations
+       of inserters and extractors.
+
+2006-09-21  Paolo Carlini  <pcarlini@suse.de>
+
        * include/ext/sso_string_base.h (__sso_string_base<>::_M_max_size(),
        _M_destroy, _M_create): Use _M_get_allocator.
 
index 41e93a2..b11b6e4 100644 (file)
 
 _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
 
-  // Forward declaration of operators < and ==, needed for friend declaration.
-
-  template <typename _Key, typename _Tp,
-            typename _Compare = std::less<_Key>,
-            typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
-    class multimap;
-
-  template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
-    inline bool
-    operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
-              const multimap<_Key, _Tp, _Compare, _Alloc>& __y);
-
-  template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
-    inline bool
-    operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
-             const multimap<_Key, _Tp, _Compare, _Alloc>& __y);
-
   /**
    *  @brief A standard container made up of (key,value) pairs, which can be
    *  retrieved based on a key, in logarithmic time.
@@ -103,7 +86,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
    *  called (*_unique versus *_equal, same as the standard).
    *  @endif
   */
-  template <typename _Key, typename _Tp, typename _Compare, typename _Alloc>
+  template <typename _Key, typename _Tp,
+           typename _Compare = std::less<_Key>,
+           typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class multimap
     {
     public:
index dd6e976..8c499c3 100644 (file)
 
 _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
 
-  // Forward declaration of operators < and ==, needed for friend declaration.
-  template <class _Key, class _Compare = std::less<_Key>,
-           class _Alloc = std::allocator<_Key> >
-    class multiset;
-
-  template <class _Key, class _Compare, class _Alloc>
-    inline bool
-    operator==(const multiset<_Key, _Compare, _Alloc>& __x,
-              const multiset<_Key, _Compare, _Alloc>& __y);
-
-  template <class _Key, class _Compare, class _Alloc>
-    inline bool
-    operator<(const multiset<_Key, _Compare, _Alloc>& __x,
-             const multiset<_Key, _Compare, _Alloc>& __y);
-
   /**
    *  @brief A standard container made up of elements, which can be retrieved
    *  in logarithmic time.
@@ -100,7 +85,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
    *  called (*_unique versus *_equal, same as the standard).
    *  @endif
   */
-  template <class _Key, class _Compare, class _Alloc>
+  template <class _Key, class _Compare = std::less<_Key>,
+           class _Alloc = std::allocator<_Key> >
     class multiset
     {
       // concept requirements
index 84c0035..04e3a7b 100644 (file)
 
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
-  // Forward declarations of operators < and ==, needed for friend declaration.
-  template<typename _Tp, typename _Sequence = deque<_Tp> >
-    class queue;
-
-  template<typename _Tp, typename _Seq>
-    inline bool
-    operator==(const queue<_Tp, _Seq>&, const queue<_Tp, _Seq>&);
-
-  template<typename _Tp, typename _Seq>
-    inline bool
-    operator<(const queue<_Tp, _Seq>&, const queue<_Tp, _Seq>&);
-
   /**
    *  @brief  A standard container giving FIFO behavior.
    *
@@ -103,7 +91,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  which is a typedef for the second Sequence parameter, and @c push and
    *  @c pop, which are standard %queue/FIFO operations.
   */
-  template<typename _Tp, typename _Sequence>
+  template<typename _Tp, typename _Sequence = deque<_Tp> >
     class queue
     {
       // concept requirements
index ed362f1..b61106a 100644 (file)
 
 _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
 
-  // Forward declarations of operators < and ==, needed for friend declaration.
-  template<class _Key, class _Compare = std::less<_Key>,
-          class _Alloc = std::allocator<_Key> >
-    class set;
-
-  template<class _Key, class _Compare, class _Alloc>
-    inline bool
-    operator==(const set<_Key, _Compare, _Alloc>& __x,
-              const set<_Key, _Compare, _Alloc>& __y);
-
-  template<class _Key, class _Compare, class _Alloc>
-    inline bool
-    operator<(const set<_Key, _Compare, _Alloc>& __x,
-             const set<_Key, _Compare, _Alloc>& __y);
-
   /**
    *  @brief A standard container made up of unique keys, which can be
    *  retrieved in logarithmic time.
@@ -103,7 +88,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
    *  called (*_unique versus *_equal, same as the standard).
    *  @endif
   */
-  template<class _Key, class _Compare, class _Alloc>
+  template<class _Key, class _Compare = std::less<_Key>,
+          class _Alloc = std::allocator<_Key> >
     class set
     {
       // concept requirements
index a6b5533..f5b41fa 100644 (file)
 
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
-  // Forward declarations of operators == and <, needed for friend
-  // declaration.
-  template<typename _Tp, typename _Sequence = deque<_Tp> >
-    class stack;
-
-  template<typename _Tp, typename _Seq>
-    inline bool
-    operator==(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y);
-
-  template<typename _Tp, typename _Seq>
-    inline bool
-    operator<(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y);
-
   /**
    *  @brief  A standard container giving FILO behavior.
    *
@@ -107,7 +94,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  push, @c pop, and @c top, which are standard %stack/FILO
    *  operations.
   */
-  template<typename _Tp, typename _Sequence>
+  template<typename _Tp, typename _Sequence = deque<_Tp> >
     class stack
     {
       // concept requirements
index 8c76013..a1cf234 100644 (file)
 
 _GLIBCXX_BEGIN_NAMESPACE(std)
      
-  template<typename _CharT>
-    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 
-                                   ostreambuf_iterator<_CharT> >::__type
-    copy(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
-        ostreambuf_iterator<_CharT>);
-
   // 24.5.3 Template class istreambuf_iterator
   /// Provides input iterator semantics for streambufs.
   template<typename _CharT, typename _Traits>
index 2367c77..b6855eb 100644 (file)
@@ -72,23 +72,13 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT)
   using std::pair;
   using std::_Select1st;
 
-  // Forward declaration of equality operator; needed for friend
-  // declaration.
-  template<class _Key, class _Tp, class _HashFn = hash<_Key>,
-          class _EqualKey = equal_to<_Key>, class _Alloc = allocator<_Tp> >
-    class hash_map;
-
-  template<class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc>
-    inline bool
-    operator==(const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&,
-              const hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>&);
-
   /**
    *  This is an SGI extension.
    *  @ingroup SGIextensions
    *  @doctodo
    */
-  template<class _Key, class _Tp, class _HashFn, class _EqualKey, class _Alloc>
+  template<class _Key, class _Tp, class _HashFn = hash<_Key>,
+          class _EqualKey = equal_to<_Key>, class _Alloc = allocator<_Tp> >
     class hash_map
     {
     private:
@@ -295,25 +285,16 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT)
         hash_map<_Key, _Tp, _HashFn, _EqlKey, _Alloc>& __hm2)
     { __hm1.swap(__hm2); }
 
-  // Forward declaration of equality operator; needed for friend declaration.
-  template<class _Key, class _Tp,
-           class _HashFn  = hash<_Key>,
-           class _EqualKey = equal_to<_Key>,
-           class _Alloc =  allocator<_Tp> >
-    class hash_multimap;
-
-  template<class _Key, class _Tp, class _HF, class _EqKey, class _Alloc>
-    inline bool
-    operator==(const hash_multimap<_Key, _Tp, _HF, _EqKey, _Alloc>& __hm1,
-              const hash_multimap<_Key, _Tp, _HF, _EqKey, _Alloc>& __hm2);
 
   /**
    *  This is an SGI extension.
    *  @ingroup SGIextensions
    *  @doctodo
    */
-  template<class _Key, class _Tp, class _HashFn, class _EqualKey,
-           class _Alloc>
+  template<class _Key, class _Tp,
+          class _HashFn = hash<_Key>,
+          class _EqualKey = equal_to<_Key>,
+          class _Alloc = allocator<_Tp> >
     class hash_multimap
     {
       // concept requirements
index 02cc99f..668fe13 100644 (file)
@@ -72,24 +72,14 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT)
   using std::pair;
   using std::_Identity;
 
-  // Forward declaration of equality operator; needed for friend
-  // declaration.
-  template<class _Value, class _HashFcn  = hash<_Value>,
-           class _EqualKey = equal_to<_Value>,
-           class _Alloc = allocator<_Value> >
-    class hash_set;
-
-  template<class _Value, class _HashFcn, class _EqualKey, class _Alloc>
-    inline bool
-    operator==(const hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __hs1,
-              const hash_set<_Value, _HashFcn, _EqualKey, _Alloc>& __hs2);
-
   /**
    *  This is an SGI extension.
    *  @ingroup SGIextensions
    *  @doctodo
    */
-  template<class _Value, class _HashFcn, class _EqualKey, class _Alloc>
+  template<class _Value, class _HashFcn  = hash<_Value>,
+          class _EqualKey = equal_to<_Value>,
+          class _Alloc = allocator<_Value> >
     class hash_set
     {
       // concept requirements
@@ -285,24 +275,16 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(__gnu_cxx, _GLIBCXX_EXT)
         hash_set<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2)
     { __hs1.swap(__hs2); }
 
-  template<class _Value,
-           class _HashFcn = hash<_Value>,
-           class _EqualKey = equal_to<_Value>,
-           class _Alloc = allocator<_Value> >
-    class hash_multiset;
-
-  template<class _Val, class _HashFcn, class _EqualKey, class _Alloc>
-    inline bool
-    operator==(const hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs1,
-              const hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2);
-
 
   /**
    *  This is an SGI extension.
    *  @ingroup SGIextensions
    *  @doctodo
    */
-  template<class _Value, class _HashFcn, class _EqualKey, class _Alloc>
+  template<class _Value,
+          class _HashFcn = hash<_Value>,
+          class _EqualKey = equal_to<_Value>,
+          class _Alloc = allocator<_Value> >
     class hash_multiset
     {
       // concept requirements
index 5a5ca86..67ffaf3 100644 (file)
@@ -60,18 +60,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     __copy_streambufs_eof(basic_streambuf<_CharT, _Traits>*,
                          basic_streambuf<_CharT, _Traits>*, bool&);
 
-  template<typename _CharT>
-    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, 
-                                   _CharT*>::__type
-    __copy_aux(istreambuf_iterator<_CharT>,
-              istreambuf_iterator<_CharT>, _CharT*);
-
-  template<typename _CharT>
-    typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value,
-                                   istreambuf_iterator<_CharT> >::__type
-    find(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>,
-        const _CharT&);
-
   /**
    *  @brief  The actual work of input and output (interface).
    *
index dfe5f17..bc8028d 100644 (file)
@@ -483,11 +483,6 @@ template<_Lock_policy _Lp>
   { }
 
 
-// Function get_deleter must be declared before friend declaration by
-// shared_ptr.
-template<typename _Del, typename _Tp, _Lock_policy _Lp>
-  _Del* get_deleter(const __shared_ptr<_Tp, _Lp>&);
-
 /**
  *  @class shared_ptr <tr1/memory>
  *
index b926c5b..05286ee 100644 (file)
@@ -296,21 +296,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * The size of the state is @f$ 1 @f$.
    */
   template<class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
-    class linear_congruential;
-
-  template<class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const linear_congruential<_UIntType, __a, __c, __m>& __lcr);
-
-  template<class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m,
-          typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              linear_congruential<_UIntType, __a, __c, __m>& __lcr);
-
-  template<class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
     class linear_congruential
     {
       __glibcxx_class_requires(_UIntType, _UnsignedIntegerConcept)
@@ -506,29 +491,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
   template<class _UIntType, int __w, int __n, int __m, int __r,
           _UIntType __a, int __u, int __s, _UIntType __b, int __t,
           _UIntType __c, int __l>
-    class mersenne_twister;
-
-  template<class _UIntType, int __w, int __n, int __m, int __r,
-          _UIntType __a, int __u, int __s, _UIntType __b, int __t,
-          _UIntType __c, int __l,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const mersenne_twister<_UIntType, __w, __n, __m,
-              __r, __a, __u, __s, __b, __t, __c, __l>& __x);
-
-  template<class _UIntType, int __w, int __n, int __m, int __r,
-          _UIntType __a, int __u, int __s, _UIntType __b, int __t,
-          _UIntType __c, int __l,
-          typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              mersenne_twister<_UIntType, __w, __n, __m,
-              __r, __a, __u, __s, __b, __t, __c, __l>& __x);
-
-  template<class _UIntType, int __w, int __n, int __m, int __r,
-          _UIntType __a, int __u, int __s, _UIntType __b, int __t,
-          _UIntType __c, int __l>
     class mersenne_twister
     {
       __glibcxx_class_requires(_UIntType, _UnsignedIntegerConcept)
@@ -707,21 +669,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * @endif
    */
   template<typename _IntType, _IntType __m, int __s, int __r>
-    class subtract_with_carry;
-
-  template<typename _IntType, _IntType __m, int __s, int __r,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const subtract_with_carry<_IntType, __m, __s, __r>& __x);
-
-  template<typename _IntType, _IntType __m, int __s, int __r,
-          typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              subtract_with_carry<_IntType, __m, __s, __r>& __x);
-
-  template<typename _IntType, _IntType __m, int __s, int __r>
     class subtract_with_carry
     {
       __glibcxx_class_requires(_IntType, _IntegerConcept)
@@ -899,21 +846,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * @endif
    */
   template<typename _RealType, int __w, int __s, int __r>
-    class subtract_with_carry_01;
-
-  template<typename _RealType, int __w, int __s, int __r,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const subtract_with_carry_01<_RealType, __w, __s, __r>& __x);
-
-  template<typename _RealType, int __w, int __s, int __r,
-          typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              subtract_with_carry_01<_RealType, __w, __s, __r>& __x);
-
-  template<typename _RealType, int __w, int __s, int __r>
     class subtract_with_carry_01
     {
     public:
@@ -1105,22 +1037,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * 0 <= @p __r <= @p __p
    */
   template<class _UniformRandomNumberGenerator, int __p, int __r>
-    class discard_block;
-
-  template<class _UniformRandomNumberGenerator, int __p, int __r,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const discard_block<_UniformRandomNumberGenerator,
-              __p, __r>& __x);
-
-  template<class _UniformRandomNumberGenerator, int __p, int __r,
-          typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              discard_block<_UniformRandomNumberGenerator, __p, __r>& __x);
-
-  template<class _UniformRandomNumberGenerator, int __p, int __r>
     class discard_block
     {
       // __glibcxx_class_requires(typename base_type::result_type,
@@ -1327,26 +1243,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    */
   template<class _UniformRandomNumberGenerator1, int __s1,
           class _UniformRandomNumberGenerator2, int __s2>
-    class xor_combine;
-
-  template<class _UniformRandomNumberGenerator1, int __s1,
-          class _UniformRandomNumberGenerator2, int __s2,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const xor_combine<_UniformRandomNumberGenerator1, __s1,
-              _UniformRandomNumberGenerator2, __s2>& __x);
-
-  template<class _UniformRandomNumberGenerator1, int __s1,
-          class _UniformRandomNumberGenerator2, int __s2,
-          typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              xor_combine<_UniformRandomNumberGenerator1, __s1,
-              _UniformRandomNumberGenerator2, __s2>& __x);
-
-  template<class _UniformRandomNumberGenerator1, int __s1,
-          class _UniformRandomNumberGenerator2, int __s2>
     class xor_combine
     {
       // __glibcxx_class_requires(typename _UniformRandomNumberGenerator1::
@@ -1616,19 +1512,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * probability throughout the range.
    */
   template<typename _IntType = int>
-    class uniform_int;
-
-  template<typename _IntType, typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const uniform_int<_IntType>& __x);
-
-  template<typename _IntType, typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              uniform_int<_IntType>& __x);
-
-  template<typename _IntType>
     class uniform_int
     {
       __glibcxx_class_requires(_IntType, _IntegerConcept)
@@ -1758,13 +1641,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * Generates a sequence of true and false values with likelihood @f$ p @f$
    * that true will come up and @f$ (1 - p) @f$ that false will appear.
    */
-  class bernoulli_distribution;
-
-  template<typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const bernoulli_distribution& __x);
-
   class bernoulli_distribution
   {
   public:
@@ -1855,15 +1731,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * distribution.
    */
   template<typename _IntType = int, typename _RealType = double>
-    class geometric_distribution;
-
-  template<typename _IntType, typename _RealType,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const geometric_distribution<_IntType, _RealType>& __x);
-
-  template<typename _IntType, typename _RealType>
     class geometric_distribution
     {
     public:
@@ -1951,21 +1818,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * parameter of the distribution.
    */
   template<typename _IntType = int, typename _RealType = double>
-    class poisson_distribution;
-
-  template<typename _IntType, typename _RealType,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const poisson_distribution<_IntType, _RealType>& __x);
-
-  template<typename _IntType, typename _RealType,
-          typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              poisson_distribution<_IntType, _RealType>& __x);
-
-  template<typename _IntType, typename _RealType>
     class poisson_distribution
     {
     public:
@@ -2053,21 +1905,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * and @f$ p @f$ are the parameters of the distribution.
    */
   template<typename _IntType = int, typename _RealType = double>
-    class binomial_distribution;
-
-  template<typename _IntType, typename _RealType,
-          typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const binomial_distribution<_IntType, _RealType>& __x);
-
-  template<typename _IntType, typename _RealType,
-          typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              binomial_distribution<_IntType, _RealType>& __x);
-
-  template<typename _IntType, typename _RealType>
     class binomial_distribution
     {
     public:
@@ -2176,19 +2013,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * deliver number in the range [0, 1).
    */
   template<typename _RealType = double>
-    class uniform_real;
-  
-  template<typename _RealType, typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const uniform_real<_RealType>& __x);
-
-  template<typename _RealType, typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              uniform_real<_RealType>& __x);
-
-  template<typename _RealType>
     class uniform_real
     {
     public:
@@ -2278,14 +2102,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * </table>
    */
   template<typename _RealType = double>
-    class exponential_distribution;
-
-  template<typename _RealType, typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const exponential_distribution<_RealType>& __x);
-
-  template<typename _RealType>
     class exponential_distribution
     {
     public:
@@ -2369,19 +2185,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    *            e^{- \frac{{x - mean}^ {2}}{2 \sigma ^ {2}} } @f$.
    */
   template<typename _RealType = double>
-    class normal_distribution;
-
-  template<typename _RealType, typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const normal_distribution<_RealType>& __x);
-
-  template<typename _RealType, typename _CharT, typename _Traits>
-    std::basic_istream<_CharT, _Traits>&
-    operator>>(std::basic_istream<_CharT, _Traits>& __is,
-              normal_distribution<_RealType>& __x);
-
-  template<typename _RealType>
     class normal_distribution
     {
     public:
@@ -2471,14 +2274,6 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
    * @f$ p(x) = \frac{1}{\Gamma(\alpha)} x^{\alpha - 1} e^{-x} } @f$.
    */
   template<typename _RealType = double>
-    class gamma_distribution;
-
-  template<typename _RealType, typename _CharT, typename _Traits>
-    std::basic_ostream<_CharT, _Traits>&
-    operator<<(std::basic_ostream<_CharT, _Traits>& __os,
-              const gamma_distribution<_RealType>& __x);
-
-  template<typename _RealType>
     class gamma_distribution
     {
     public: