35 #ifndef _STREAMBUF_TCC
36 #define _STREAMBUF_TCC 1
38 #pragma GCC system_header
40 namespace std _GLIBCXX_VISIBILITY(default)
42 _GLIBCXX_BEGIN_NAMESPACE_VERSION
44 template<
typename _CharT,
typename _Traits>
52 const streamsize __buf_len = this->egptr() - this->gptr();
57 traits_type::copy(__s, this->gptr(), __len);
60 this->__safe_gbump(__len);
66 if (!traits_type::eq_int_type(__c, traits_type::eof()))
68 traits_type::assign(*__s++, traits_type::to_char_type(__c));
78 template<
typename _CharT,
typename _Traits>
86 const streamsize __buf_len = this->epptr() - this->pptr();
91 traits_type::copy(this->pptr(), __s, __len);
94 this->__safe_pbump(__len);
99 int_type __c = this->overflow(traits_type::to_int_type(*__s));
100 if (!traits_type::eq_int_type(__c, traits_type::eof()))
115 template<
typename _CharT,
typename _Traits>
123 typename _Traits::int_type __c = __sbin->
sgetc();
124 while (!_Traits::eq_int_type(__c, _Traits::eof()))
126 __c = __sbout->
sputc(_Traits::to_char_type(__c));
127 if (_Traits::eq_int_type(__c, _Traits::eof()))
138 template<
typename _CharT,
typename _Traits>
140 __copy_streambufs(basic_streambuf<_CharT, _Traits>* __sbin,
141 basic_streambuf<_CharT, _Traits>* __sbout)
144 return __copy_streambufs_eof(__sbin, __sbout, __ineof);
149 #if _GLIBCXX_EXTERN_TEMPLATE
150 extern template class basic_streambuf<char>;
153 __copy_streambufs(basic_streambuf<char>*,
154 basic_streambuf<char>*);
157 __copy_streambufs_eof(basic_streambuf<char>*,
158 basic_streambuf<char>*,
bool&);
160 #ifdef _GLIBCXX_USE_WCHAR_T
161 extern template class basic_streambuf<wchar_t>;
164 __copy_streambufs(basic_streambuf<wchar_t>*,
165 basic_streambuf<wchar_t>*);
168 __copy_streambufs_eof(basic_streambuf<wchar_t>*,
169 basic_streambuf<wchar_t>*,
bool&);
173 _GLIBCXX_END_NAMESPACE_VERSION
int_type sgetc()
Getting the next character.
virtual streamsize xsgetn(char_type *__s, streamsize __n)
Multiple character extraction.
int_type sputc(char_type __c)
Entry point for all single-character output functions.
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
virtual streamsize xsputn(const char_type *__s, streamsize __n)
Multiple character insertion.
traits_type::int_type int_type
The actual work of input and output (interface).This is a base class. Derived stream buffers each con...
const _Tp & min(const _Tp &, const _Tp &)
This does what you think it does.
int_type snextc()
Getting the next character.