diff options
author | Paolo Carlini <pcarlini@suse.de> | 2006-10-13 22:46:58 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2006-10-13 22:46:58 +0000 |
commit | f7ab3fd1dcd2a9c75fc465c8585ebecfc1cb7acf (patch) | |
tree | 7a5ebbbba647ee21f587ad70018c5accb76f8a03 /libstdc++-v3/include/std | |
parent | 164ea65a2737fccce0cd4bfd742014eeb8c45d57 (diff) | |
download | gcc-f7ab3fd1dcd2a9c75fc465c8585ebecfc1cb7acf.zip gcc-f7ab3fd1dcd2a9c75fc465c8585ebecfc1cb7acf.tar.gz gcc-f7ab3fd1dcd2a9c75fc465c8585ebecfc1cb7acf.tar.bz2 |
istream.tcc (operator>>(__istream_type& (*)(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)), operator>>(ios_base& (*)(ios_base&))): Move...
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
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r-- | libstdc++-v3/include/std/std_istream.h | 40 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_ostream.h | 64 |
2 files changed, 67 insertions, 37 deletions
diff --git a/libstdc++-v3/include/std/std_istream.h b/libstdc++-v3/include/std/std_istream.h index 862793e..e81c9cd 100644 --- a/libstdc++-v3/include/std/std_istream.h +++ b/libstdc++-v3/include/std/std_istream.h @@ -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)); } //@} diff --git a/libstdc++-v3/include/std/std_ostream.h b/libstdc++-v3/include/std/std_ostream.h index 6b4d389..5cac2c1 100644 --- a/libstdc++-v3/include/std/std_ostream.h +++ b/libstdc++-v3/include/std/std_ostream.h @@ -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(); } |