std::basic_stringstream< _CharT, _Traits, _Alloc > Class Template Reference
I/O

## Public Types

typedef basic_iostream< char_type, traits_type > | __iostream_type
typedef basic_string< _CharT, _Traits, _Alloc > | __string_type
typedef basic_stringbuf< _CharT, _Traits, _Alloc > | __stringbuf_type
typedef _Alloc | allocator_type
typedef _CharT | char_type
typedef traits_type::int_type | int_type
typedef traits_type::off_type | off_type
typedef traits_type::pos_type | pos_type
typedef _Traits | traits_type

## Public Member Functions

| basic_stringstream (basic_stringstream &&__rhs)
| basic_stringstream (const __string_type &__str, ios_base::openmode __m=ios_base::out|ios_base::in)
| basic_stringstream (const basic_stringstream &)=delete
| basic_stringstream (ios_base::openmode __m=ios_base::out|ios_base::in)
| ~basic_stringstream ()
basic_stringstream & | operator= (basic_stringstream &&__rhs)
basic_stringstream & | operator= (const basic_stringstream &)=delete
__stringbuf_type * | rdbuf () const
__string_type | str () const
void | str (const __string_type &__s)
void | swap (basic_stringstream &__rhs)

## Detailed Description

### template<typename _CharT, typename _Traits, typename _Alloc>
class std::basic_stringstream< _CharT, _Traits, _Alloc >

Controlling input and output for std::string.

Template Parameters

  _CharT | Type of character stream.
  _Traits | Traits for character type, defaults to char_traits<_CharT>.
  _Alloc | Allocator type, defaults to allocator<_CharT>.

This class supports reading from and writing to objects of type std::basic_string, using the inherited functions from std::basic_iostream. To control the associated sequence, an instance of std::basic_stringbuf is used, which this page refers to as `sb`.

Definition at line 108 of file iosfwd.

## Constructor & Destructor Documentation

## basic_stringstream() [1/2]

template<typename _CharT , typename _Traits , typename _Alloc >

std::basic_stringstream< _CharT, _Traits, _Alloc >::basic_stringstream | ( | ios_base::openmode | __m = `ios_base::out | ios_base::in` | ) |

inline explicit

Default constructor starts with an empty string buffer.

Parameters

  __m | Whether the buffer can read, or write, or both.

Initializes `sb` using the mode from `__m`, and passes `&sb` to the base class initializer. Does not allocate any buffer.

That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

Definition at line 704 of file sstream.

## basic_stringstream() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >

std::basic_stringstream< _CharT, _Traits, _Alloc >::basic_stringstream | ( | const __string_type & | __str,
|  | ios_base::openmode | __m = `ios_base::out | ios_base::in`
| ) |  |

inline explicit

Starts with an existing string buffer.

Parameters

  __str | A string to copy as a starting buffer.
  __m | Whether the buffer can read, or write, or both.

Initializes `sb` using __str and `__m`, and passes `&sb` to the base class initializer.

That's a lie. We initialize the base class with NULL, because the string class does its own memory management.

Definition at line 720 of file sstream.

## ~basic_stringstream()

template<typename _CharT , typename _Traits , typename _Alloc >

std::basic_stringstream< _CharT, _Traits, _Alloc >::~basic_stringstream | ( |  | ) |

inline

The destructor does nothing.

The buffer is deallocated by the stringbuf object, not the formatting stream.

Definition at line 731 of file sstream.

## Member Function Documentation

## rdbuf()

template<typename _CharT , typename _Traits , typename _Alloc >

__stringbuf_type* std::basic_stringstream< _CharT, _Traits, _Alloc >::rdbuf | ( |  | ) | const

inline

Accessing the underlying buffer.

Returns
  The current basic_stringbuf buffer.

This hides both signatures of std::basic_ios::rdbuf().

Definition at line 771 of file sstream.

## str() [1/2]

template<typename _CharT , typename _Traits , typename _Alloc >

__string_type std::basic_stringstream< _CharT, _Traits, _Alloc >::str | ( |  | ) | const

inline

Copying out the string buffer.

Returns
  `rdbuf()->str()`

Definition at line 779 of file sstream.

## str() [2/2]

template<typename _CharT , typename _Traits , typename _Alloc >

void std::basic_stringstream< _CharT, _Traits, _Alloc >::str | ( | const __string_type & | __s | ) |

inline

Setting a new buffer.

Parameters

  __s | The string to use as a new sequence.

Calls `rdbuf()->str(s)`.

Definition at line 789 of file sstream.

The documentation for this class was generated from the following files:

- iosfwd
- sstream