std::strstream::~strstream
Von cppreference.com
| virtual ~strstream(); |
(veraltet in C++98) (entfernt in C++26) |
|
Zerstört ein std::strstream-Objekt, was auch den Member std::strstreambuf zerstört, der die Deallokationsfunktion aufrufen kann, wenn der zugrundeliegende Puffer dynamisch alloziert und nicht "eingefroren" wurde.
[bearbeiten] Parameter
(keine)
[bearbeiten] Hinweise
Wenn str() für einen dynamischen strstream aufgerufen wurde und danach freeze(false) nicht aufgerufen wurde, führt dieser Destruktor zu einem Speicherleck.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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 }
Ausgabe
1.23 1.23 1.23