std::ostrstream:: freeze
|
void
freeze
(
bool
flag
=
true
)
;
|
(obsoleto en C++98)
(eliminado en C++26) |
|
Si el stream está usando un array dinámicamente asignado para salida, desactiva ( flag == true ) o activa ( flag == false ) la asignación/liberación automática del buffer. Efectivamente llama a rdbuf ( ) - > freeze ( flag ) .
Contenidos |
Notas
Después de una llamada a str() , los flujos dinámicos se congelan automáticamente. Se requiere una llamada a freeze ( false ) antes de salir del ámbito en el que se creó este objeto ostrstream , de lo contrario el destructor filtrará memoria. Además, la salida adicional a un flujo congelado puede truncarse una vez que alcance el final del búfer asignado.
Parámetros
| flag | - | estado deseado |
Valor de retorno
(ninguno)
Ejemplo
#include <iostream> #include <strstream> int main() { std::ostrstream dyn; // búfer de salida asignado dinámicamente dyn << "Test: " << 1.23; // nota: sin std::ends para demostrar la anexación std::cout << "The output stream contains \""; std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; // el stream ahora está congelado debido a str() dyn << " More text"; // la salida a un stream congelado puede truncarse std::cout << "The output stream contains \""; std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; dyn.freeze(false); // freeze(false) debe llamarse o el destructor tendrá una fuga std::ostrstream dyn2; // búfer de salida asignado dinámicamente dyn2 << "Test: " << 1.23; // nota: sin std::ends std::cout << "The output stream contains \""; std::cout.write(dyn2.str(), dyn2.pcount()) << "\"\n"; dyn2.freeze(false); // descongelar el stream después de str() dyn2 << " More text" << std::ends; // la salida no se truncará (el búfer crece) std::cout << "The output stream contains \"" << dyn2.str() << "\"\n"; dyn2.freeze(false); // freeze(false) debe llamarse o el destructor tendrá una fuga }
Salida posible:
The output stream contains "Test: 1.23" The output stream contains "Test: 1.23 More " The output stream contains "Test: 1.23" The output stream contains "Test: 1.23 More text"
Véase también
|
establece/limpia el estado congelado del búfer
(función miembro pública de
std::strstreambuf
)
|