std::ostrstream:: ~ostrstream
From cppreference.net
<
cpp
|
io
|
ostrstream
C++
Input/output library
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(C++20)
|
||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
| Synchronized Output | ||||
|
(C++20)
|
||||
| Types | ||||
| Error category interface | ||||
|
(C++11)
|
||||
|
(C++11)
|
std::ostrstream
| Member functions | ||||
|
ostrstream::~ostrstream
|
||||
|
virtual
~ostrstream
(
)
;
|
(veraltet in C++98)
(entfernt in C++26) |
|
Zerstört ein std::ostrstream -Objekt, was ebenfalls das Mitglied std::strstreambuf zerstört, was die Freigabefunktion aufrufen kann, falls der zugrundeliegende Puffer dynamisch alloziert und nicht eingefroren war.
Parameter
(keine)
Hinweise
Wenn
str()
auf einen dynamischen
ostrstream
aufgerufen wurde und
freeze(false)
danach nicht aufgerufen wurde, führt dieser Destruktor zu einem Speicherleck.
Beispiel
Diesen Code ausführen
#include <iostream> #include <strstream> int main() { { std::ostrstream s; // dynamischer Puffer s << 1.23; std::cout << s.str() << '\n'; s.freeze(false); } // Destruktor aufgerufen, Puffer freigegeben { std::ostrstream s; s << 1.23; std::cout << s.str() << '\n'; // buf.freeze(false); } // Destruktor aufgerufen, Speicherleck }
Ausgabe:
1.23 1.23