diff options
Diffstat (limited to 'libstdc++-v3/include/std/ostream')
-rw-r--r-- | libstdc++-v3/include/std/ostream | 53 |
1 files changed, 7 insertions, 46 deletions
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; } |