Namespaces
Variants

std::strstreambuf:: pbackfail

From cppreference.net
protected :
virtual int_type pbackfail ( int_type c = EOF ) ;
(obsolète en C++98)
(supprimé en C++26)

Cette fonction virtuelle protégée est appelée par les fonctions publiques basic_streambuf::sungetc et basic_streambuf::sputbackc (qui, à leur tour, sont appelées par basic_istream::unget et basic_istream::putback ).

1) L'appelant demande que la zone de récupération soit sauvegardée d'un caractère ( pbackfail() est appelé sans arguments ou avec EOF comme argument)
a) D'abord, vérifie s'il y a une position de remise en mémoire, et s'il n'y en a vraiment pas, échoue ( strstreambuf n'a pas de source de caractères externe pour relire).
b) Si l'appelant avait tort et que la position de remise est en fait disponible, décrémente simplement basic_streambuf::gptr() , par exemple en appelant gbump ( - 1 ) .
2) L'appelant tente de remettre un caractère différent de celui récupéré précédemment ( pbackfail() est appelé avec le caractère qui doit être remis), auquel cas
a) Vérifie d'abord s'il y a une position de remise, et s'il n'y en a pas, échoue.
b) Vérifie ensuite quel caractère se trouve en position de remise. Si le caractère maintenu à cet endroit est déjà égal à ( char ) c , alors décrémente simplement basic_streambuf::gptr() .
c) Sinon, si le tampon est non modifiable (ce strstreambuf a été construit avec un littéral de chaîne ou un autre const tableau), échoue.
d) Sinon, décrémente basic_streambuf::gptr() et écrit c à l'emplacement pointé par gptr ( ) après ajustement.

Table des matières

Paramètres

c - le caractère à remettre, ou Traits :: eof ( ) pour indiquer qu'un retour en arrière de la zone de lecture est demandé

Valeur de retour

c en cas de succès sauf si c était EOF , auquel cas une valeur non spécifiée autre que EOF est retournée.

EOF en cas d'échec.

Exemple

Voir aussi

[virtual]
place un caractère dans la séquence d'entrée, en modifiant éventuellement la séquence d'entrée
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
recule le pointeur suivant dans la séquence d'entrée d'une position
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
replace un caractère dans la séquence d'entrée
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
dés-extrait un caractère
(fonction membre publique de std::basic_istream<CharT,Traits> )
place un caractère dans le flux d'entrée
(fonction membre publique de std::basic_istream<CharT,Traits> )