istream.tcc (operator>>(__istream_type& (*)(__istream_type&)), operator>>(__ios_type...
authorPaolo Carlini <pcarlini@suse.de>
Fri, 13 Oct 2006 22:46:58 +0000 (22:46 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Fri, 13 Oct 2006 22:46:58 +0000 (22:46 +0000)
2006-10-13  Paolo Carlini  <pcarlini@suse.de>

* include/bits/istream.tcc (operator>>(__istream_type&
(*)(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
operator>>(ios_base& (*)(ios_base&))): Move...
* include/std/std_istream.h: ... here.
(operator>>(basic_istream<char,>&, unsigned char&),
operator>>(basic_istream<char,>&, signed char&),
operator>>(basic_istream<char,>&, unsigned char*),
operator>>(basic_istream<char,>&, signed char*)): Mark inline.
* include/bits/ostream.tcc (operator<<(__ostream_type&
(*)(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
operator<<(ios_base& (*)(ios_base&))): Move...
* include/std/std_ostream.h: ... here.
(operator<<(basic_ostream<>&, _CharT),
operator<<(basic_ostream<>&, char),
operator<<(basic_ostream<char,>&, char),
operator<<(basic_ostream<char,>&, signed char),
operator<<(basic_ostream<char,>&, unsigned char),
operator<<(basic_ostream<>&, const _CharT*),
operator<<(basic_ostream<char,>&, const char*),
operator<<(basic_ostream<char,>&, const signed char*),
operator<<(basic_ostream<char,>&, const unsigned char*),
endl(basic_ostream<>&), ends(basic_ostream<>&),
flush(basic_ostream<>&)): Mark inline.

From-SVN: r117715

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/istream.tcc
libstdc++-v3/include/bits/ostream.tcc
libstdc++-v3/include/std/std_istream.h
libstdc++-v3/include/std/std_ostream.h

index c42aba17c4f902494a341f9192008fba8f81bb6d..9df166145286122f55ea6ba4e0acd2ea3c93bc10 100644 (file)
@@ -1,3 +1,29 @@
+2006-10-13  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/bits/istream.tcc (operator>>(__istream_type&
+       (*)(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
+       operator>>(ios_base& (*)(ios_base&))): Move...
+       * include/std/std_istream.h: ... here.
+       (operator>>(basic_istream<char,>&, unsigned char&),
+       operator>>(basic_istream<char,>&, signed char&),
+       operator>>(basic_istream<char,>&, unsigned char*),
+       operator>>(basic_istream<char,>&, signed char*)): Mark inline.
+       * include/bits/ostream.tcc (operator<<(__ostream_type&
+       (*)(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
+       operator<<(ios_base& (*)(ios_base&))): Move...
+       * include/std/std_ostream.h: ... here.
+       (operator<<(basic_ostream<>&, _CharT),
+       operator<<(basic_ostream<>&, char),
+       operator<<(basic_ostream<char,>&, char),
+       operator<<(basic_ostream<char,>&, signed char),
+       operator<<(basic_ostream<char,>&, unsigned char),
+       operator<<(basic_ostream<>&, const _CharT*),
+       operator<<(basic_ostream<char,>&, const char*),
+       operator<<(basic_ostream<char,>&, const signed char*),
+       operator<<(basic_ostream<char,>&, const unsigned char*),
+       endl(basic_ostream<>&), ends(basic_ostream<>&),
+       flush(basic_ostream<>&)): Mark inline.
+
 2006-10-13  Paolo Carlini  <pcarlini@suse.de>
 
        PR libstdc++/28277 (partial: ostream bits 2)
index dca39ec1424c6c8d57ebdec1e560a82e47821b83..39ee2c75772a93c0a10a4e0faf40fa005c4e2d0b 100644 (file)
@@ -85,30 +85,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        }
     }
 
-  template<typename _CharT, typename _Traits>
-    basic_istream<_CharT, _Traits>&
-    basic_istream<_CharT, _Traits>::
-    operator>>(__istream_type& (*__pf)(__istream_type&))
-    { return __pf(*this); }
-
-  template<typename _CharT, typename _Traits>
-    basic_istream<_CharT, _Traits>&
-    basic_istream<_CharT, _Traits>::
-    operator>>(__ios_type& (*__pf)(__ios_type&))
-    {
-      __pf(*this);
-      return *this;
-    }
-
-  template<typename _CharT, typename _Traits>
-    basic_istream<_CharT, _Traits>&
-    basic_istream<_CharT, _Traits>::
-    operator>>(ios_base& (*__pf)(ios_base&))
-    {
-      __pf(*this);
-      return *this;
-    }
-
   template<typename _CharT, typename _Traits>
     template<typename _ValueT>
       basic_istream<_CharT, _Traits>&
index a52eb4e3a00bcc31fc7adba74f5f1a32fe52d1bb..5bfde44dd3a8547f561fcfef0ab86a8d986de6fc 100644 (file)
@@ -61,41 +61,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        __os.setstate(ios_base::failbit);
     }
 
-  template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>&
-    basic_ostream<_CharT, _Traits>::
-    operator<<(__ostream_type& (*__pf)(__ostream_type&))
-    {
-      // _GLIBCXX_RESOLVE_LIB_DEFECTS
-      // DR 60. What is a formatted input function?
-      // The inserters for manipulators are *not* formatted output functions.
-      return __pf(*this);
-    }
-
-  template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>&
-    basic_ostream<_CharT, _Traits>::
-    operator<<(__ios_type& (*__pf)(__ios_type&))
-    {
-      // _GLIBCXX_RESOLVE_LIB_DEFECTS
-      // DR 60. What is a formatted input function?
-      // The inserters for manipulators are *not* formatted output functions.
-      __pf(*this);
-      return *this;
-    }
-
-  template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>&
-    basic_ostream<_CharT, _Traits>::
-    operator<<(ios_base& (*__pf)(ios_base&))
-    {
-      // _GLIBCXX_RESOLVE_LIB_DEFECTS
-      // DR 60. What is a formatted input function?
-      // The inserters for manipulators are *not* formatted output functions.
-      __pf(*this);
-      return *this;
-    }
-
   template<typename _CharT, typename _Traits>
     template<typename _ValueT>
       basic_ostream<_CharT, _Traits>&
index 862793e9ffed83a11d810c1e7ff586564842e0ac..e81c9cd9252b6b576beaac3efc4a449863cfb7e9 100644 (file)
@@ -127,14 +127,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *  functions in constructs like "std::cin >> std::ws".  For more
        *  information, see the iomanip header.
       */
-      inline __istream_type&
-      operator>>(__istream_type& (*__pf)(__istream_type&));
+      __istream_type&
+      operator>>(__istream_type& (*__pf)(__istream_type&))
+      { return __pf(*this); }
 
-      inline __istream_type&
-      operator>>(__ios_type& (*__pf)(__ios_type&));
+      __istream_type&
+      operator>>(__ios_type& (*__pf)(__ios_type&))
+      { 
+       __pf(*this);
+       return *this;
+      }
 
-      inline __istream_type&
-      operator>>(ios_base& (*__pf)(ios_base&));
+      __istream_type&
+      operator>>(ios_base& (*__pf)(ios_base&))
+      {
+       __pf(*this);
+       return *this;
+      }
       //@}
       
       // [27.6.1.2.2] arithmetic extractors
@@ -247,7 +256,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *  @return  The number of characters extracted by the previous
        *           unformatted input function dispatched for this stream.
       */
-      inline streamsize 
+      streamsize 
       gcount() const 
       { return _M_gcount; }
       
@@ -331,7 +340,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *
        *  Returns @c get(s,n,widen('\n')).
       */
-      inline __istream_type& 
+      __istream_type& 
       get(char_type* __s, streamsize __n)
       { return this->get(__s, __n, this->widen('\n')); }
 
@@ -364,7 +373,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *
        *  Returns @c get(sb,widen('\n')).
       */
-      inline __istream_type&
+      __istream_type&
       get(__streambuf_type& __sb)
       { return this->get(__sb, this->widen('\n')); }
 
@@ -404,7 +413,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *
        *  Returns @c getline(s,n,widen('\n')).
       */
-      inline __istream_type& 
+      __istream_type& 
       getline(char_type* __s, streamsize __n)
       { return this->getline(__s, __n, this->widen('\n')); }
 
@@ -675,7 +684,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *  For ease of use, sentries may be converted to booleans.  The
        *  return value is that of the sentry state (true == okay).
       */
-      operator bool() const { return _M_ok; }
+      operator bool() const
+      { return _M_ok; }
 
     private:
       bool _M_ok;
@@ -699,12 +709,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);
 
   template<class _Traits>
-    basic_istream<char, _Traits>&
+    inline basic_istream<char, _Traits>&
     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
     { return (__in >> reinterpret_cast<char&>(__c)); }
 
   template<class _Traits>
-    basic_istream<char, _Traits>&
+    inline basic_istream<char, _Traits>&
     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
     { return (__in >> reinterpret_cast<char&>(__c)); }
   //@}
@@ -745,12 +755,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     operator>>(basic_istream<char>& __in, char* __s);
 
   template<class _Traits>
-    basic_istream<char, _Traits>&
+    inline basic_istream<char, _Traits>&
     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
     { return (__in >> reinterpret_cast<char*>(__s)); }
 
   template<class _Traits>
-    basic_istream<char, _Traits>&
+    inline basic_istream<char, _Traits>&
     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
     { return (__in >> reinterpret_cast<char*>(__s)); }
   //@}
index 6b4d389ac1fa377c8aba7e7ab8ecf037492f41a6..5cac2c1760a7ee2a2c6396540f44530d8f7981c9 100644 (file)
@@ -131,14 +131,34 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *  functions in constructs like "std::cout << std::endl".  For more
        *  information, see the iomanip header.
       */
-      inline __ostream_type&
-      operator<<(__ostream_type& (*__pf)(__ostream_type&));
-      
-      inline __ostream_type&
-      operator<<(__ios_type& (*__pf)(__ios_type&));
-      
-      inline __ostream_type&
-      operator<<(ios_base& (*__pf) (ios_base&));
+      __ostream_type&
+      operator<<(__ostream_type& (*__pf)(__ostream_type&))
+      {
+       // _GLIBCXX_RESOLVE_LIB_DEFECTS
+       // DR 60. What is a formatted input function?
+       // The inserters for manipulators are *not* formatted output functions.
+       return __pf(*this);
+      }
+
+      __ostream_type&
+      operator<<(__ios_type& (*__pf)(__ios_type&))
+      {
+       // _GLIBCXX_RESOLVE_LIB_DEFECTS
+       // DR 60. What is a formatted input function?
+       // The inserters for manipulators are *not* formatted output functions.
+       __pf(*this);
+       return *this;
+      }
+
+      __ostream_type&
+      operator<<(ios_base& (*__pf) (ios_base&))
+      {
+       // _GLIBCXX_RESOLVE_LIB_DEFECTS
+       // DR 60. What is a formatted input function?
+       // The inserters for manipulators are *not* formatted output functions.
+       __pf(*this);
+       return *this;
+      }
       //@}
 
       // [27.6.2.5.2] arithmetic inserters
@@ -405,7 +425,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     {
       // Data Members:
       bool                             _M_ok;
-      basic_ostream<_CharT,_Traits>&   _M_os;
+      basic_ostream<_CharT, _Traits>&  _M_os;
       
     public:
       /**
@@ -420,7 +440,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
        *  true ("okay").
       */
       explicit
-      sentry(basic_ostream<_CharT,_Traits>& __os);
+      sentry(basic_ostream<_CharT, _Traits>& __os);
 
       /**
        *  @brief  Possibly flushes the stream.
@@ -469,29 +489,29 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  @c char, the character is widened before insertion.
   */
   template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>&
+    inline basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
     { return __out._M_insert(&__c, 1); }
 
   template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>&
+    inline basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
     { return (__out << __out.widen(__c)); }
 
   // Specialization
   template <class _Traits> 
-    basic_ostream<char, _Traits>&
+    inline basic_ostream<char, _Traits>&
     operator<<(basic_ostream<char, _Traits>& __out, char __c)
     { return __out._M_insert(&__c, 1); }
 
   // Signed and unsigned
   template<class _Traits>
-    basic_ostream<char, _Traits>&
+    inline basic_ostream<char, _Traits>&
     operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
     { return (__out << static_cast<char>(__c)); }
   
   template<class _Traits>
-    basic_ostream<char, _Traits>&
+    inline basic_ostream<char, _Traits>&
     operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
     { return (__out << static_cast<char>(__c)); }
   //@}
@@ -511,7 +531,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  determined by [22.2.2.2.2]).  @c out.width(0) is then called.
   */
   template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>&
+    inline basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
     {
       if (!__s)
@@ -527,7 +547,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 
   // Partial specializationss
   template<class _Traits>
-    basic_ostream<char, _Traits>&
+    inline basic_ostream<char, _Traits>&
     operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
     {
       if (!__s)
@@ -539,12 +559,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
 
   // Signed and unsigned
   template<class _Traits>
-    basic_ostream<char, _Traits>&
+    inline basic_ostream<char, _Traits>&
     operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
     { return (__out << reinterpret_cast<const char*>(__s)); }
 
   template<class _Traits>
-    basic_ostream<char, _Traits> &
+    inline basic_ostream<char, _Traits> &
     operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
     { return (__out << reinterpret_cast<const char*>(__s)); }
   //@}
@@ -559,7 +579,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  on this subject.
   */
   template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>& 
+    inline basic_ostream<_CharT, _Traits>& 
     endl(basic_ostream<_CharT, _Traits>& __os)
     { return flush(__os.put(__os.widen('\n'))); }
 
@@ -570,7 +590,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  this correctly writes the ASCII @c NUL character string terminator.
   */
   template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>& 
+    inline basic_ostream<_CharT, _Traits>& 
     ends(basic_ostream<_CharT, _Traits>& __os)
     { return __os.put(_CharT()); }
   
@@ -580,7 +600,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
    *  This manipulator simply calls the stream's @c flush() member function.
   */
   template<typename _CharT, typename _Traits>
-    basic_ostream<_CharT, _Traits>& 
+    inline basic_ostream<_CharT, _Traits>& 
     flush(basic_ostream<_CharT, _Traits>& __os)
     { return __os.flush(); }