summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/std/std_istream.h
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-08 15:46:28 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-08 15:46:28 +0000
commit5eabcc3a3c43e15244bd586ff5cca7966d4ea7a3 (patch)
treeb575696a6bc27aaebd9e0eb5902c1870af61a812 /libstdc++-v3/include/std/std_istream.h
parent48fc5f4f3ba68b9b15116d34a707e0a2c5130fb4 (diff)
downloadppe42-gcc-5eabcc3a3c43e15244bd586ff5cca7966d4ea7a3.tar.gz
ppe42-gcc-5eabcc3a3c43e15244bd586ff5cca7966d4ea7a3.zip
2004-11-08 Paolo Carlini <pcarlini@suse.de>
* include/bits/istream.tcc (getline(char_type*, streamsize, char_type), ignore(streamsize), ignore(streamsize, int_type)): Restore a generic version of the functions, not using the protected members of basic_streambuf. * include/std/std_istream.h (getline(char_type*, streamsize, char_type), ignore(streamsize), ignore(streamsize, int_type)): Declare optimized specializations for char and wchar_t. * src/istream.cc: New file, define the latter. * src/Makefile.am: Add. * src/Makefile.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90268 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/std/std_istream.h')
-rw-r--r--libstdc++-v3/include/std/std_istream.h41
1 files changed, 37 insertions, 4 deletions
diff --git a/libstdc++-v3/include/std/std_istream.h b/libstdc++-v3/include/std/std_istream.h
index 65f9e6c3034..28b0fdd5c60 100644
--- a/libstdc++-v3/include/std/std_istream.h
+++ b/libstdc++-v3/include/std/std_istream.h
@@ -574,7 +574,40 @@ namespace std
explicit
basic_istream(): _M_gcount(streamsize(0)) { }
};
+
+ // Explicit specialization declarations, defined in src/istream.cc.
+ template<>
+ basic_istream<char>&
+ basic_istream<char>::
+ getline(char_type* __s, streamsize __n, char_type __delim);
+
+ template<>
+ basic_istream<char>&
+ basic_istream<char>::
+ ignore(streamsize __n);
+ template<>
+ basic_istream<char>&
+ basic_istream<char>::
+ ignore(streamsize __n, int_type __delim);
+
+#ifdef _GLIBCXX_USE_WCHAR_T
+ template<>
+ basic_istream<wchar_t>&
+ basic_istream<wchar_t>::
+ getline(char_type* __s, streamsize __n, char_type __delim);
+
+ template<>
+ basic_istream<wchar_t>&
+ basic_istream<wchar_t>::
+ ignore(streamsize __n);
+
+ template<>
+ basic_istream<wchar_t>&
+ basic_istream<wchar_t>::
+ ignore(streamsize __n, int_type __delim);
+#endif
+
/**
* @brief Performs setup work for input streams.
*
@@ -693,13 +726,13 @@ namespace std
operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);
template<class _Traits>
- basic_istream<char,_Traits>&
- operator>>(basic_istream<char,_Traits>& __in, unsigned char* __s)
+ 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>&
- operator>>(basic_istream<char,_Traits>& __in, signed char* __s)
+ basic_istream<char, _Traits>&
+ operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
{ return (__in >> reinterpret_cast<char*>(__s)); }
//@}
OpenPOWER on IntegriCloud