summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-26 14:59:59 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-26 14:59:59 +0000
commit4020825e2b75a89c76646750cb15959f62d4bbf3 (patch)
tree0128b72ae9439a44997c7e7fb4aa180d7c4e1bff /libstdc++-v3/include
parent83277bf64298828852efae8d0cb63022bb1f095a (diff)
downloadppe42-gcc-4020825e2b75a89c76646750cb15959f62d4bbf3.tar.gz
ppe42-gcc-4020825e2b75a89c76646750cb15959f62d4bbf3.zip
Backport from mainline:
2014-08-12 Jonathan Wakely <jwakely@redhat.com> * include/bits/basic_string.h (getline): Qualify call to prevent ADL and add overloads for rvalue streams. * testsuite/21_strings/basic_string/inserters_extractors/char/12.cc: New. * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/12.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@214525 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r--libstdc++-v3/include/bits/basic_string.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index cd6037677df..93ceb6dae5d 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -2811,7 +2811,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
inline basic_istream<_CharT, _Traits>&
getline(basic_istream<_CharT, _Traits>& __is,
basic_string<_CharT, _Traits, _Alloc>& __str)
- { return getline(__is, __str, __is.widen('\n')); }
+ { return std::getline(__is, __str, __is.widen('\n')); }
+
+#if __cplusplus >= 201103L
+ /// Read a line from an rvalue stream into a string.
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ inline basic_istream<_CharT, _Traits>&
+ getline(basic_istream<_CharT, _Traits>&& __is,
+ basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim)
+ { return std::getline(__is, __str, __delim); }
+
+ /// Read a line from an rvalue stream into a string.
+ template<typename _CharT, typename _Traits, typename _Alloc>
+ inline basic_istream<_CharT, _Traits>&
+ getline(basic_istream<_CharT, _Traits>&& __is,
+ basic_string<_CharT, _Traits, _Alloc>& __str)
+ { return std::getline(__is, __str); }
+#endif
template<>
basic_istream<char>&
OpenPOWER on IntegriCloud