std::strstreambuf:: setbuf
|
protected
:
virtual streambuf * setbuf ( char * s, std:: streamsize n ) ; |
(obsoleto en C++98)
(eliminado en C++26) |
|
Si s es un puntero nulo y n es cero, esta función no tiene efecto.
De lo contrario, el efecto está definido por la implementación: algunas implementaciones no hacen nada, mientras que algunas implementaciones desasignan el array dinámico miembro utilizado como búfer y comienzan a utilizar el array de caracteres proporcionado por el usuario de tamaño n , cuyo primer elemento está señalado por s .
Esta función es protegida virtual, solo puede ser llamada a través de
pubsetbuf()
o desde funciones miembro de una clase definida por el usuario derivada de
std::strstreambuf
.
Contenidos |
Parámetros
| s | - | puntero al primer byte en el búfer proporcionado por el usuario |
| n | - | el número de bytes en el búfer proporcionado por el usuario |
Valor de retorno
this
Ejemplo
Prueba de implementación para verificar si
setbuf()
es compatible con un strstream dinámico (salida obtenida con Sun Studio):
#include <iostream> #include <strstream> int main() { char a[100] = {}; std::strstream str; str.rdbuf()->pubsetbuf(a, sizeof a); str << "Test string" << std::ends; std::cout << "user-provided buffer holds \"" << a << "\"\n"; }
Salida posible:
user-provided buffer holds "Test string"
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 66 | C++98 |
el efecto de
setbuf()
era "realiza una operación que está
definida separadamente para cada clase derivada de
strstreambuf
",
pero no existen clases derivadas de
strstreambuf
|
el efecto es
definido por la implementación |
Véase también
|
invoca
setbuf
(
)
(función miembro pública de
std::basic_streambuf<CharT,Traits>
)
|
|
|
[virtual]
|
reemplaza el buffer con un array definido por el usuario, si está permitido
(función miembro protegida virtual de
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
intenta reemplazar la secuencia de caracteres controlada con un array
(función miembro protegida virtual de
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
proporciona un buffer suministrado por el usuario o convierte este filebuf en no bufferizado
(función miembro protegida virtual de
std::basic_filebuf<CharT,Traits>
)
|