std::strstream:: ~strstream
From cppreference.net
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::strstream
| Member functions | ||||
|
strstream::~strstream
|
||||
|
virtual
~strstream
(
)
;
|
(in C++98 veraltet)
(in C++26 entfernt) |
|
Zerstört ein
std::strstream
-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 einem dynamischen
strstream
aufgerufen wurde und
freeze(false)
danach nicht aufgerufen wurde, leckt dieser Destruktor Speicher.
Beispiel
Diesen Code ausführen
#include <iostream> #include <strstream> int main() { { std::ostrstream s; // dynamischer Puffer s << 1.23 << std::ends; std::cout << s.str() << '\n'; s.freeze(false); } // Destruktor aufgerufen, Puffer freigegeben { std::ostrstream s; s << 1.23 << std::ends; std::cout << s.str() << '\n'; // buf.freeze(false); } // Destruktor aufgerufen, Speicherleck { std::istrstream s("1.23"); // konstanter Puffer double d; s >> d; std::cout << d << '\n'; } // Destruktor aufgerufen, nichts freizugeben }
Ausgabe:
1.23 1.23 1.23