diff options
author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-25 08:47:33 +0000 |
---|---|---|
committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-25 08:47:33 +0000 |
commit | bc1c8aef9de53e6c3aa24dd97ca1d2bf7f679796 (patch) | |
tree | 87d3c80e2398847cef0634f8a19a029b5b39d898 /libstdc++-v3/include | |
parent | 63864e1c15b724736e16990b93d8e31023ef5de5 (diff) | |
download | gcc-bc1c8aef9de53e6c3aa24dd97ca1d2bf7f679796.tar.gz |
2005-07-24 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/22515
* include/bits/basic_string.h: Declare the specialization
operator>>(basic_istream<char>&, basic_string<char>&).
* include/std/std_istream.h: Declate the specialization
operator>>(basic_istream<char>&, char*).
* include/std/std_streambuf.h (basic_streambuf): Add friend
declarations for the above.
* src/istream.cc: Define the above.
* testsuite/27_io/basic_istream/extractors_character/char/4.cc: New.
* testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc:
Likewise.
* testsuite/performance/27_io/ifstream_extract_chars.cc: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102353 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r-- | libstdc++-v3/include/bits/basic_string.h | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_istream.h | 9 | ||||
-rw-r--r-- | libstdc++-v3/include/std/std_streambuf.h | 13 |
3 files changed, 22 insertions, 4 deletions
diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 498d7065f16..ad1324a3f71 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -2373,6 +2373,10 @@ namespace std operator>>(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Alloc>& __str); + template<> + basic_istream<char>& + operator>>(basic_istream<char>& __is, basic_string<char>& __str); + /** * @brief Write string to a stream. * @param os Output stream. diff --git a/libstdc++-v3/include/std/std_istream.h b/libstdc++-v3/include/std/std_istream.h index 0a6bd992467..cec598938a5 100644 --- a/libstdc++-v3/include/std/std_istream.h +++ b/libstdc++-v3/include/std/std_istream.h @@ -1,6 +1,6 @@ // Input streams -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004 +// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -723,7 +723,12 @@ namespace std template<typename _CharT, typename _Traits> basic_istream<_CharT, _Traits>& operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s); - + + // Explicit specialization declaration, defined in src/istream.cc. + template<> + basic_istream<char>& + operator>>(basic_istream<char>& __in, char* __s); + template<class _Traits> basic_istream<char, _Traits>& operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s) diff --git a/libstdc++-v3/include/std/std_streambuf.h b/libstdc++-v3/include/std/std_streambuf.h index c6902bec819..efb39471f76 100644 --- a/libstdc++-v3/include/std/std_streambuf.h +++ b/libstdc++-v3/include/std/std_streambuf.h @@ -1,6 +1,6 @@ // Stream buffer classes -*- C++ -*- -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -153,7 +153,16 @@ namespace std friend streamsize __copy_streambufs<>(__streambuf_type* __sbin, __streambuf_type* __sbout); - + + template<typename _CharT2, typename _Traits2> + friend basic_istream<_CharT2, _Traits2>& + operator>>(basic_istream<_CharT2, _Traits2>&, _CharT2*); + + template<typename _CharT2, typename _Traits2, typename _Alloc> + friend basic_istream<_CharT2, _Traits2>& + operator>>(basic_istream<_CharT2, _Traits2>&, + basic_string<_CharT2, _Traits2, _Alloc>&); + template<typename _CharT2, typename _Traits2, typename _Alloc> friend basic_istream<_CharT2, _Traits2>& getline(basic_istream<_CharT2, _Traits2>&, |