std::ostrstream::~ostrstream
Von cppreference.com
< cpp | io | ostrstream
| virtual ~ostrstream(); |
(veraltet in C++98) (entfernt in C++26) |
|
Zerstört ein std::ostrstream-Objekt, was auch den Member std::strstreambuf zerstört, der die Deallokationsfunktion aufrufen kann, wenn der zugrunde liegende Puffer dynamisch zugewiesen und nicht "eingefroren" wurde.
[edit] Parameter
(keine)
[edit] Hinweise
Wenn str() auf einem dynamischen ostrstream aufgerufen wurde und freeze(false) danach nicht aufgerufen wurde, führt dieser Destruktor zu einem Speicherleck.
[edit] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <strstream> int main() { { std::ostrstream s; // dynamic buffer s << 1.23; std::cout << s.str() << '\n'; s.freeze(false); } // destructor called, buffer deallocated { std::ostrstream s; s << 1.23; std::cout << s.str() << '\n'; // buf.freeze(false); } // destructor called, memory leaked }
Ausgabe
1.23 1.23