The first form (1) returns a basic_string object with a copy of the current contents of the stream.
The second form (2) sets str as the contents of the stream, discarding any previous contents. The object preserves its open mode: if this includes ios_base::ate, the writing position is moved to the end of the new sequence.
A basic_string object with the same template parameters (charT, traits and Alloc), whose content is copied.
Member types char_type, traits_type and allocator_type are the class template parameters of basic_stringstream.
Return Value
For (1), a basic_string object with a copy of the current contents in the stream buffer.
Member types char_type, traits_type and allocator_type are the class template parameters of basic_stringstream.
Example
1 2 3 4 5 6 7 8 9 10 11 12
// stringstream::str
#include <string> // std::string
#include <iostream> // std::cout
#include <sstream> // std::stringstream, std::stringbuf
int main () {
std::stringstream ss;
ss.str ("Example string");
std::string s = ss.str();
std::cout << s << '\n';
return 0;
}
Example string
Data races
Accesses (1) or modifies (2) the basic_stringstream object.
Concurrent access to the same object may cause data races.
Exception safety
Basic guarantee: if an exception is thrown, the object is in a valid state.