std::strstreambuf:: pbackfail
From es.cppreference.net
<
cpp
|
io
|
strstreambuf
|
protected
:
virtual int_type pbackfail ( int_type c = EOF ) ; |
(obsoleto en C++98)
(eliminado en C++26) |
|
Esta función virtual protegida es llamada por las funciones públicas basic_streambuf::sungetc y basic_streambuf::sputbackc (que, a su vez, son llamadas por basic_istream::unget y basic_istream::putback ).
1)
El solicitante está pidiendo que el área de obtención tenga respaldo de un carácter (
pbackfail()
se llama sin argumentos o con
EOF
como argumento)
a)
Primero, verifica si hay una posición de putback, y si realmente no la hay, falla (
strstreambuf
no tiene una fuente externa de caracteres para volver a leer).
b)
Si el llamador estaba equivocado y la posición de putback está de hecho disponible, simplemente decrementa
basic_streambuf::gptr()
, por ejemplo llamando
gbump
(
-
1
)
.
2)
El llamador intenta devolver un carácter diferente del que se recuperó anteriormente (
pbackfail()
se llama con el carácter que necesita ser devuelto), en cuyo caso
a)
Primero, verifica si hay una posición de putback, y si no la hay, falla.
b)
Luego verifica qué carácter está en la posición de retroceso. Si el carácter contenido allí ya es igual a
(
char
)
c
, entonces simplemente decrementa
basic_streambuf::gptr()
.
c)
De lo contrario, si el búfer es inmodificable (este strstreambuf fue construido con un literal de cadena o algún otro
const
array), falla.
d)
De lo contrario, decrementa
basic_streambuf::gptr()
y escribe
c
en la ubicación apuntada por
gptr
(
)
después del ajuste.
Contenidos |
Parámetros
| c | - | el carácter a devolver, o Traits :: eof ( ) para indicar que se solicita el retroceso del área de obtención |
Valor de retorno
c en caso de éxito, excepto si c era EOF , en cuyo caso se retorna un valor no especificado diferente de EOF .
EOF en caso de fallo.
Ejemplo
|
Esta sección está incompleta
Motivo: sin ejemplo |
Véase también
|
[virtual]
|
coloca un carácter de vuelta en la secuencia de entrada, posiblemente modificando la secuencia de entrada
(función miembro protegida virtual de
std::basic_streambuf<CharT,Traits>
)
|
|
mueve el siguiente puntero en la secuencia de entrada hacia atrás una posición
(función miembro pública de
std::basic_streambuf<CharT,Traits>
)
|
|
|
coloca un carácter de vuelta en la secuencia de entrada
(función miembro pública de
std::basic_streambuf<CharT,Traits>
)
|
|
|
extrae un carácter hacia atrás
(función miembro pública de
std::basic_istream<CharT,Traits>
)
|
|
|
coloca un carácter en el flujo de entrada
(función miembro pública de
std::basic_istream<CharT,Traits>
)
|