strstreambuf::freeze
Rend une mémoire tampon du flux pas disponible via des opérations de mémoire tampon du flux.
void freeze(
bool _Freezeit = true
);
Paramètres
- _Freezeit
bool qui indique si vous souhaitez que le flux de données à figer.
Notes
Si _Freezeit est true, la fonction modifie le mode d'strstreambuf stockées pour effectuer la séquence contrôlée gelée. Sinon, il a la séquence non contrôlée gelée.
str implique freeze.
Notes
Une mémoire tampon gelée n'est pas libérée lors de la destruction d'strstreambuf.Vous devez libérer la mémoire tampon avant qu'elle soit diffusée pour éviter une fuite de mémoire.
Exemple
// strstreambuf_freeze.cpp
// compile with: /EHsc
#include <iostream>
#include <strstream>
using namespace std;
void report(strstream &x)
{
if (!x.good())
cout << "stream bad" << endl;
else
cout << "stream good" << endl;
}
int main()
{
strstream x;
x << "test1";
cout << "before freeze: ";
report(x);
// Calling str freezes stream.
cout.write(x.rdbuf()->str(), 5) << endl;
cout << "after freeze: ";
report(x);
// Stream is bad now, wrote on frozen stream
x << "test1.5";
cout << "after write to frozen stream: ";
report(x);
// Unfreeze stream, but it is still bad
x.rdbuf()->freeze(false);
cout << "after unfreezing stream: ";
report(x);
// Clear stream
x.clear();
cout << "after clearing stream: ";
report(x);
x << "test3";
cout.write(x.rdbuf()->str(), 10) << endl;
// Clean up. Failure to unfreeze stream will cause a
// memory leak.
x.rdbuf()->freeze(false);
}
Configuration requise
**En-tête :**strstream <de >
Espace de noms : std