std::basic_ostream::~basic_ostream
From cppreference.com
< cpp | io | basic ostream
virtual ~basic_ostream(); |
||
Destroys the basic_ostream
object. This destructor does not perform any operation on the underlying streambuffer (rdbuf()
): the destructors of the derived output streams such as std::basic_ofstream and std::basic_ostringstream are responsible for calling the destructors of the stream buffers.
[edit] Example
Run this code
#include <sstream> #include <iostream> void add_words(std::streambuf* p) { std::ostream buf(p); // buf shares the buffer with s buf << " is the answer"; } // calls the destructor of buf. p remains unaffected int main() { std::ostringstream s; s << 42; add_words(s.rdbuf()); s << "."; std::cout << s.str() << '\n'; }
Output:
42 is the answer.