33 #ifndef _GLIBCXX_SSTREAM 
   34 #define _GLIBCXX_SSTREAM 1 
   36 #pragma GCC system_header 
   41 namespace std _GLIBCXX_VISIBILITY(default)
 
   43 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   63   template<
typename _CharT, 
typename _Traits, 
typename _Alloc>
 
   64     class basic_stringbuf : 
public basic_streambuf<_CharT, _Traits>
 
   68       typedef _CharT                    char_type;
 
   69       typedef _Traits                   traits_type;
 
   72       typedef _Alloc                        allocator_type;
 
   73       typedef typename traits_type::int_type        int_type;
 
   74       typedef typename traits_type::pos_type        pos_type;
 
   75       typedef typename traits_type::off_type        off_type;
 
   77       typedef basic_streambuf<char_type, traits_type>   __streambuf_type;
 
   78       typedef basic_string<char_type, _Traits, _Alloc>  __string_type;
 
   79       typedef typename __string_type::size_type     __size_type;
 
  114       { _M_stringbuf_init(__mode); }
 
  160       _M_stringbuf_init(ios_base::openmode __mode)
 
  163     __size_type __len = 0;
 
  165       __len = _M_string.
size();
 
  166     _M_sync(const_cast<char_type*>(_M_string.
data()), 0, __len);
 
  185       pbackfail(int_type __c = traits_type::eof());
 
  188       overflow(int_type __c = traits_type::eof());
 
  201       virtual __streambuf_type*
 
  215         _M_sync(__s, __n, 0);
 
  221       seekoff(off_type __off, ios_base::seekdir __way,
 
  232       _M_sync(char_type* 
__base, __size_type __i, __size_type __o);
 
  252       _M_pbump(char_type* __pbeg, char_type* __pend, off_type __off);
 
  271   template<
typename _CharT, 
typename _Traits, 
typename _Alloc>
 
  272     class basic_istringstream : 
public basic_istream<_CharT, _Traits>
 
  276       typedef _CharT                    char_type;
 
  277       typedef _Traits                   traits_type;
 
  280       typedef _Alloc                        allocator_type;
 
  281       typedef typename traits_type::int_type        int_type;
 
  282       typedef typename traits_type::pos_type        pos_type;
 
  283       typedef typename traits_type::off_type        off_type;
 
  286       typedef basic_string<_CharT, _Traits, _Alloc>     __string_type;
 
  287       typedef basic_stringbuf<_CharT, _Traits, _Alloc>  __stringbuf_type;
 
  288       typedef basic_istream<char_type, traits_type> __istream_type;
 
  291       __stringbuf_type  _M_stringbuf;
 
  310       { this->
init(&_M_stringbuf); }
 
  327               ios_base::openmode __mode = ios_base::in)
 
  329       { this->
init(&_M_stringbuf); }
 
  349       { 
return const_cast<__stringbuf_type*
>(&_M_stringbuf); }
 
  357       { 
return _M_stringbuf.str(); }
 
  367       { _M_stringbuf.str(__s); }
 
  386   template <
typename _CharT, 
typename _Traits, 
typename _Alloc>
 
  387     class basic_ostringstream : 
public basic_ostream<_CharT, _Traits>
 
  391       typedef _CharT                    char_type;
 
  392       typedef _Traits                   traits_type;
 
  395       typedef _Alloc                        allocator_type;
 
  396       typedef typename traits_type::int_type        int_type;
 
  397       typedef typename traits_type::pos_type        pos_type;
 
  398       typedef typename traits_type::off_type        off_type;
 
  401       typedef basic_string<_CharT, _Traits, _Alloc>     __string_type;
 
  402       typedef basic_stringbuf<_CharT, _Traits, _Alloc>  __stringbuf_type;
 
  403       typedef basic_ostream<char_type, traits_type> __ostream_type;
 
  406       __stringbuf_type  _M_stringbuf;
 
  425       { this->
init(&_M_stringbuf); }
 
  444       { this->
init(&_M_stringbuf); }
 
  464       { 
return const_cast<__stringbuf_type*
>(&_M_stringbuf); }
 
  472       { 
return _M_stringbuf.str(); }
 
  482       { _M_stringbuf.str(__s); }
 
  501   template <
typename _CharT, 
typename _Traits, 
typename _Alloc>
 
  502     class basic_stringstream : 
public basic_iostream<_CharT, _Traits>
 
  506       typedef _CharT                    char_type;
 
  507       typedef _Traits                   traits_type;
 
  510       typedef _Alloc                        allocator_type;
 
  511       typedef typename traits_type::int_type        int_type;
 
  512       typedef typename traits_type::pos_type        pos_type;
 
  513       typedef typename traits_type::off_type        off_type;
 
  516       typedef basic_string<_CharT, _Traits, _Alloc>     __string_type;
 
  517       typedef basic_stringbuf<_CharT, _Traits, _Alloc>  __stringbuf_type;
 
  518       typedef basic_iostream<char_type, traits_type>    __iostream_type;
 
  521       __stringbuf_type  _M_stringbuf;
 
  539       { this->
init(&_M_stringbuf); }
 
  556       { this->
init(&_M_stringbuf); }
 
  576       { 
return const_cast<__stringbuf_type*
>(&_M_stringbuf); }
 
  584       { 
return _M_stringbuf.str(); }
 
  594       { _M_stringbuf.str(__s); }
 
  597 _GLIBCXX_END_NAMESPACE_VERSION
 
__stringbuf_type * rdbuf() const 
Accessing the underlying buffer. 
 
static const openmode app
Seek to end before each write. 
 
const _CharT * data() const noexcept
Return const pointer to contents. 
 
void str(const __string_type &__s)
Setting a new buffer. 
 
__string_type str() const 
Copying out the string buffer. 
 
~basic_stringstream()
The destructor does nothing. 
 
void str(const __string_type &__s)
Setting a new buffer. 
 
virtual pos_type seekoff(off_type __off, ios_base::seekdir __way, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream positions. 
 
__stringbuf_type * rdbuf() const 
Accessing the underlying buffer. 
 
~basic_ostringstream()
The destructor does nothing. 
 
basic_stringbuf(ios_base::openmode __mode=ios_base::in|ios_base::out)
Starts with an empty string buffer. 
 
The base of the I/O class hierarchy.This class defines everything that can be defined about I/O that ...
 
basic_stringstream(ios_base::openmode __m=ios_base::out|ios_base::in)
Default constructor starts with an empty string buffer. 
 
Template class basic_istream. 
 
constexpr size_t size() const noexcept
Returns the total number of bits. 
 
basic_istringstream(ios_base::openmode __mode=ios_base::in)
Default constructor starts with an empty string buffer. 
 
char_type * pptr() const 
Access to the put area. 
 
static const openmode in
Open for input. Default for ifstream and fstream. 
 
size_type size() const noexcept
Returns the number of characters in the string, not including any null-termination. 
 
char_type * pbase() const 
Access to the put area. 
 
ios_base::openmode _M_mode
Place to stash in || out || in | out settings for current stringbuf. 
 
void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here. 
 
__string_type str() const 
Copying out the string buffer. 
 
__string_type str() const 
Copying out the string buffer. 
 
__stringbuf_type * rdbuf() const 
Accessing the underlying buffer. 
 
void str(const __string_type &__s)
Setting a new buffer. 
 
char_type * eback() const 
Access to the get area. 
 
Template class basic_iostream. 
 
virtual streamsize showmanyc()
Investigating the data available. 
 
void str(const __string_type &__s)
Setting a new buffer. 
 
virtual __streambuf_type * setbuf(char_type *__s, streamsize __n)
Manipulates the buffer. 
 
char_type * gptr() const 
Access to the get area. 
 
~basic_istringstream()
The destructor does nothing. 
 
The actual work of input and output (interface). 
 
basic_ostringstream(ios_base::openmode __mode=ios_base::out)
Default constructor starts with an empty string buffer. 
 
static const openmode ate
Open and seek to end immediately after opening. 
 
static const openmode out
Open for output. Default for ofstream and fstream. 
 
void setg(char_type *__gbeg, char_type *__gnext, char_type *__gend)
Setting the three read area pointers. 
 
char_type * egptr() const 
Access to the get area. 
 
basic_stringstream(const __string_type &__str, ios_base::openmode __m=ios_base::out|ios_base::in)
Starts with an existing string buffer. 
 
virtual pos_type seekpos(pos_type __sp, ios_base::openmode __mode=ios_base::in|ios_base::out)
Alters the stream positions. 
 
basic_stringbuf(const __string_type &__str, ios_base::openmode __mode=ios_base::in|ios_base::out)
Starts with an existing string buffer. 
 
_Siter_base< _Iterator >::iterator_type __base(_Iterator __it)
 
virtual int_type underflow()
Fetches more data from the controlled sequence. 
 
Template class basic_ostream. 
 
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes. 
 
basic_ostringstream(const __string_type &__str, ios_base::openmode __mode=ios_base::out)
Starts with an existing string buffer. 
 
basic_string & assign(const basic_string &__str)
Set value to contents of another string. 
 
basic_istringstream(const __string_type &__str, ios_base::openmode __mode=ios_base::in)
Starts with an existing string buffer. 
 
__string_type str() const 
Copying out the string buffer.