std::strstream::~strstream(3)

NAME
std::strstream::~strstream - std::strstream::~strstream

Synopsis
   virtual ~strstream(); (deprecated in C++98)
                        (removed in C++26)
   Destroys a std::strstream object, which also destroys the member std::strstreambuf,
   which may call the deallocation function if the underlying buffer was
   dynamically-allocated and not frozen.

Parameters
   (none)

Notes
   If str() was called on a dynamic strstream and freeze(false) was not called after
   that, this destructor leaks memory.

Example
// Run this code
 #include <iostream>
 #include <strstream>
 int main()
 {
     {
         std::ostrstream s; // dynamic buffer
         s << 1.23 << std::ends;
         std::cout << s.str() << '\n';
         s.freeze(false);
     } // destructor called, buffer deallocated
     {
         std::ostrstream s;
         s << 1.23 << std::ends;
         std::cout << s.str() << '\n';
 // buf.freeze(false);
     } // destructor called, memory leaked
     {
         std::istrstream s("1.23"); // constant buffer
         double d;
         s >> d;
         std::cout << d << '\n';
     } // destructor called, nothing to deallocate
 }

Output:
 1.23
 1.23
 1.23