public member function
<sstream>
| default (1) | explicit stringbuf (ios_base::openmode which = ios_base::in | ios_base::out); | 
|---|
| initialization (2) | explicit stringbuf (const string& str,                    ios_base::openmode which = ios_base::in | ios_base::out); | 
|---|
 
| default (1) | explicit stringbuf (ios_base::openmode which = ios_base::in | ios_base::out); | 
|---|
| initialization (2) | explicit stringbuf (const string& str,                    ios_base::openmode which = ios_base::in | ios_base::out); | 
|---|
| copy (3) | stringbuf (const stringbuf&) = delete; | 
|---|
| move (4) | stringbuf (stringbuf&& x); | 
|---|
 
 
Construct a string stream buffer object
Constructs a stringbuf object:
- (1) empty constructor (default constructor)
- Constructs a stringbuf object with an empty sequence as content, and argument which as open mode.
- (2) initialization constructor
- Constructs a stringbuf object with a copy of str as content, and argument which as open mode.
- (3) copy constructor (deleted)
- Deleted (no copy constructor).
- (4) move constructor
- Acquires the contents of x.
 x is left in an unspecified but valid state.
 It is unspecified whether the internal sequence is the one in x before the call, or a copy of it. In any case, both objects use independent sequences after the call.
 
Parameters
- str
- A string object, whose content is copied.
- x
- A stringbuf object, whose value is moved.
- which
- Open mode: Access given to the internal sequence of characters through the internal pointers that define the stream buffer's input sequence and output sequence. It is an object of type ios_base::openmode for which any combination of the following constant values is significant:
 
| value | stands for | access | 
|---|
 | ios_base::in | input | The sequence can be read: Members eback, gptr and egptr are maintained with values pointing to elements of the internal character sequence. |  | ios_base::out | output | The sequence can be written: Members pbase, pptr and epptr are maintained with values pointing to elements of the internal character sequence. |  
 
Other values of type  ios_base::openmode may also be specified, although whether they have an effect on  stringbuf objects depends on the library implementation.
 
 
| value | stands for | access | 
|---|
 | ios_base::in | input | The sequence can be read: Members eback, gptr and egptr are maintained with values pointing to elements of the internal character sequence. |  | ios_base::out | output | The sequence can be written: Members pbase, pptr and epptr are maintained with values pointing to elements of the internal character sequence. |  | ios_base::ate | at end | The put pointer (pptr) starts at the end of the sequence, and is reset to that position every time the contents are changed using member str. |  
 
Other values of type  ios_base::openmode (such as  ios_base::app) may also be specified, although whether they have an effect on  stringbuf objects depends on the library implementation.
 
 
 
Example
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | // stringbuf example
#include <iostream>     // std::cout, std::ostream, std::hex
#include <sstream>      // std::stringbuf
#include <string>       // std::string
int main ()
{
  std::stringbuf buffer;      // empty stringbuf
  std::ostream os (&buffer);  // associate stream buffer to stream
  // mixing output to buffer with inserting to associated stream:
  buffer.sputn ("255 in hexadecimal: ",20);
  os << std::hex << 255;
  std::cout << buffer.str();
  return 0;
}
 | 
Output:
Data races
The move constructor (4) modifies x.
Exception safety
Strong guarantee: if an exception is thrown, there are no side effects.
See also
- stringbuf::str
- Get/set the string content (public member function)