std::basic_streambuf<CharT,Traits>:: pbackfail
|
protected
:
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) ) ; |
||
Esta función solo puede llamarse si se cumple alguna de las siguientes condiciones:
- gptr ( ) es nulo ,
- gptr ( ) == eback ( ) , o
- traits :: eq ( traits :: to_char_type ( c ) , gptr ( ) [ - 1 ] ) retorna false .
Esta función es llamada por las funciones públicas sungetc() y sputbackc() (que, a su vez, son llamadas por basic_istream::unget y basic_istream::putback ) cuando cualquiera de las siguientes condiciones se cumple:
pbackfail()
se llama sin argumentos). En esta situación, el propósito de
pbackfail()
es retroceder el área de obtención un carácter, si la secuencia de caracteres asociada lo permite (por ejemplo, un streambuf respaldado por archivo puede recargar el búfer desde un archivo, comenzando un carácter antes).
pbackfail()
se llama con el carácter que necesita ser devuelto). En esta situación, el propósito de
pbackfail()
es colocar el carácter
c
en el área de obtención en la posición justo antes de
basic_streambuf::gptr()
, y, si es posible, modificar la secuencia de caracteres asociada para reflejar este cambio. Esto puede implicar retroceder el área de obtención como en la primera variante.
La versión de la clase base por defecto de esta función no hace nada y retorna Traits :: eof ( ) en todas las situaciones. Esta función es sobrescrita por las clases derivadas: basic_stringbuf::pbackfail , basic_filebuf::pbackfail , strstreambuf::pbackfail , y se espera que sea sobrescrita por clases de flujo definidas por el usuario y bibliotecas de terceros.
Contenidos |
Parámetros
| ch | - | carácter a reintroducir o Traits :: eof ( ) si solo se solicita retroceso |
Valor de retorno
Traits :: eof ( ) en caso de fallo, algún otro valor para indicar éxito. La versión de la clase base siempre falla.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
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 32 | C++98 |
la condición de llamada '
traits
::
eq
(
*
gptr
(
)
,traits
::
to_char_type
(
c
)
)
retorna false ' no coincidía con la descripción de sputbackc() |
corregido para coincidir
con la descripción |
Véase también
|
[virtual]
|
retrocede la secuencia de entrada para devolver un carácter, sin afectar el archivo asociado
(función miembro protegida virtual de
std::basic_filebuf<CharT,Traits>
)
|
|
[virtual]
|
devuelve un carácter a la secuencia de entrada
(función miembro protegida virtual de
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
retrocede la secuencia de entrada para devolver un carácter
(función miembro protegida virtual de
std::strstreambuf
)
|
|
mueve el siguiente puntero en la secuencia de entrada hacia atrás una posición
(función miembro pública) |
|
|
devuelve un carácter a la secuencia de entrada
(función miembro pública) |