Namespaces
Variants

std::basic_stringbuf<CharT,Traits,Allocator>:: init_buf_ptrs

From cppreference.net
void init_buf_ptrs ( ) ;
( solo para exposición* )

Inicializa las secuencias de entrada y salida desde buf de acuerdo con mode . buf y mode son miembros de datos solo de exposición de * this .

Inmediatamente después de que esta función retorne:

  • Si std::ios_base::out está establecido en mode , pbase() apunta a buf. front ( ) y epptr ( ) >= pbase ( ) + buf. size ( ) es true ;
    • adicionalmente, si std::ios_base::ate está establecido en mode , pptr ( ) == pbase ( ) + buf. size ( ) es true ,
    • de lo contrario pptr ( ) == pbase ( ) es true .
  • Si std::ios_base::in está establecido en mode , eback() apunta a buf. front ( ) , y gptr ( ) == eback ( ) && egptr ( ) == eback ( ) + buf. size ( ) es true .

Notas

Por razones de eficiencia, las operaciones del búfer de flujo pueden violar los invariantes de buf mientras está encapsulado en el std::basic_stringbuf , por ejemplo, escribiendo en caracteres en el rango [ buf. data ( ) + buf. size ( ) , buf. data ( ) + buf. capacity ( ) ) .

Todas las operaciones que recuperan un std::basic_string desde buf garantizan que los invariantes de std::basic_string se mantengan en el valor devuelto.

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 1448 C++98 llamar a init_buf_ptrs () hacía
pptr ( ) == pbase ( ) + buf. data ( )
para flujos que son tanto de entrada como de salida
hace
pptr ( ) == pbase ( ) + buf. size ( )
para flujos de anexado