aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r--libstdc++-v3/include/std/bitset8
-rw-r--r--libstdc++-v3/include/std/ostream53
-rw-r--r--libstdc++-v3/include/std/string5
3 files changed, 14 insertions, 52 deletions
diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset
index 3a7d40b..9c869bf 100644
--- a/libstdc++-v3/include/std/bitset
+++ b/libstdc++-v3/include/std/bitset
@@ -1240,7 +1240,6 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
{
try
{
- basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf();
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 303. Bitset input operator underspecified
const char_type __zero = __is.widen('0');
@@ -1249,7 +1248,7 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
{
static typename _Traits::int_type __eof = _Traits::eof();
- typename _Traits::int_type __c1 = __buf->sbumpc();
+ typename _Traits::int_type __c1 = __is.rdbuf()->sbumpc();
if (_Traits::eq_int_type(__c1, __eof))
{
__state |= __ios_base::eofbit;
@@ -1262,8 +1261,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
__tmp.push_back('0');
else if (__c2 == __one)
__tmp.push_back('1');
- else if (_Traits::eq_int_type(__buf->sputbackc(__c2),
- __eof))
+ else if (_Traits::
+ eq_int_type(__is.rdbuf()->sputbackc(__c2),
+ __eof))
{
__state |= __ios_base::failbit;
break;
diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index 942a5a4..dc859b1 100644
--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -44,6 +44,7 @@
#include <ios>
#include <locale>
+#include <bits/ostream_insert.h>
_GLIBCXX_BEGIN_NAMESPACE(std)
@@ -74,31 +75,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
__num_put_type;
typedef ctype<_CharT> __ctype_type;
- template<typename _CharT2, typename _Traits2>
- friend basic_ostream<_CharT2, _Traits2>&
- operator<<(basic_ostream<_CharT2, _Traits2>&, _CharT2);
-
- template<typename _Traits2>
- friend basic_ostream<char, _Traits2>&
- operator<<(basic_ostream<char, _Traits2>&, char);
-
- template<typename _CharT2, typename _Traits2>
- friend basic_ostream<_CharT2, _Traits2>&
- operator<<(basic_ostream<_CharT2, _Traits2>&, const _CharT2*);
-
- template<typename _Traits2>
- friend basic_ostream<char, _Traits2>&
- operator<<(basic_ostream<char, _Traits2>&, const char*);
-
- template<typename _CharT2, typename _Traits2>
- friend basic_ostream<_CharT2, _Traits2>&
- operator<<(basic_ostream<_CharT2, _Traits2>&, const char*);
-
- template<typename _CharT2, typename _Traits2, typename _Alloc>
- friend basic_ostream<_CharT2, _Traits2>&
- operator<<(basic_ostream<_CharT2, _Traits2>&,
- const basic_string<_CharT2, _Traits2, _Alloc>&);
-
// [27.6.2.2] constructor/destructor
/**
* @brief Base constructor.
@@ -320,20 +296,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
this->setstate(ios_base::badbit);
}
- void
- _M_write(char_type __c, streamsize __n)
- {
- for (; __n > 0; --__n)
- {
- const int_type __put = this->rdbuf()->sputc(__c);
- if (traits_type::eq_int_type(__put, traits_type::eof()))
- {
- this->setstate(ios_base::badbit);
- break;
- }
- }
- }
-
/**
* @brief Character string insertion.
* @param s The array to insert.
@@ -407,9 +369,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _ValueT>
__ostream_type&
_M_insert(_ValueT __v);
-
- __ostream_type&
- _M_insert(const char_type* __s, streamsize __n);
};
/**
@@ -493,7 +452,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
- { return __out._M_insert(&__c, 1); }
+ { return __ostream_insert(__out, &__c, 1); }
template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT, _Traits>&
@@ -504,7 +463,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template <class _Traits>
inline basic_ostream<char, _Traits>&
operator<<(basic_ostream<char, _Traits>& __out, char __c)
- { return __out._M_insert(&__c, 1); }
+ { return __ostream_insert(__out, &__c, 1); }
// Signed and unsigned
template<class _Traits>
@@ -539,7 +498,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
if (!__s)
__out.setstate(ios_base::badbit);
else
- __out._M_insert(__s, static_cast<streamsize>(_Traits::length(__s)));
+ __ostream_insert(__out, __s,
+ static_cast<streamsize>(_Traits::length(__s)));
return __out;
}
@@ -555,7 +515,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
if (!__s)
__out.setstate(ios_base::badbit);
else
- __out._M_insert(__s, static_cast<streamsize>(_Traits::length(__s)));
+ __ostream_insert(__out, __s,
+ static_cast<streamsize>(_Traits::length(__s)));
return __out;
}
diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string
index 7819015..9bf7796 100644
--- a/libstdc++-v3/include/std/string
+++ b/libstdc++-v3/include/std/string
@@ -47,9 +47,10 @@
#include <bits/char_traits.h> // NB: In turn includes stl_algobase.h
#include <bits/allocator.h>
#include <bits/cpp_type_traits.h>
-#include <iosfwd> // For operators >>, <<, and getline decls.
+#include <bits/localefwd.h> // For operators >>, <<, and getline.
+#include <bits/ostream_insert.h>
#include <bits/stl_iterator.h>
-#include <bits/stl_function.h> // For less
+#include <bits/stl_function.h> // For less
#include <bits/basic_string.h>
#ifndef _GLIBCXX_EXPORT_TEMPLATE