std::basic_streambuf<CharT,Traits>:: pbackfail
|
protected
:
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) ) ; |
||
Cette fonction ne peut être appelée que si l'une des conditions suivantes est satisfaite :
- gptr ( ) est nul ,
- gptr ( ) == eback ( ) , ou
- traits :: eq ( traits :: to_char_type ( c ) , gptr ( ) [ - 1 ] ) renvoie false .
Cette fonction est appelée par les fonctions publiques sungetc() et sputbackc() (qui, à leur tour, sont appelées par basic_istream::unget et basic_istream::putback ) lorsque l'une des conditions suivantes se produit :
pbackfail()
est appelé sans arguments). Dans cette situation, le but de
pbackfail()
est de reculer d'un caractère dans la zone de lecture, si la séquence de caractères associée le permet (par exemple, un streambuf lié à un fichier peut recharger le tampon à partir du fichier, en commençant un caractère plus tôt).
pbackfail()
est appelé avec le caractère à remettre). Dans cette situation, l'objectif de
pbackfail()
est de placer le caractère
c
dans la zone de lecture à la position juste avant
basic_streambuf::gptr()
, et, si possible, de modifier la séquence de caractères associée pour refléter ce changement. Cela peut impliquer de reculer la zone de lecture comme dans la première variante.
La version de base par défaut de cette fonction ne fait rien et retourne Traits :: eof ( ) dans toutes les situations. Cette fonction est redéfinie par les classes dérivées : basic_stringbuf::pbackfail , basic_filebuf::pbackfail , strstreambuf::pbackfail , et est censée être redéfinie par les classes de flux définies par l'utilisateur et les bibliothèques tierces.
Table des matières |
Paramètres
| ch | - | caractère à remettre ou Traits :: eof ( ) si seule la restitution est demandée |
Valeur de retour
Traits :: eof ( ) en cas d'échec, une autre valeur pour indiquer le succès. La version de la classe de base échoue toujours.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | S'applique à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 32 | C++98 |
la condition d'appel '
traits
::
eq
(
*
gptr
(
)
,traits
::
to_char_type
(
c
)
)
renvoie false ' ne correspondait pas à la description de sputbackc() |
corrigé pour correspondre
à la description |
Voir aussi
|
[virtual]
|
recule la séquence d'entrée pour remettre un caractère, sans affecter le fichier associé
(fonction membre protégée virtuelle de
std::basic_filebuf<CharT,Traits>
)
|
|
[virtual]
|
remet un caractère dans la séquence d'entrée
(fonction membre protégée virtuelle de
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
recule la séquence d'entrée pour remettre un caractère
(fonction membre protégée virtuelle de
std::strstreambuf
)
|
|
recule le pointeur suivant dans la séquence d'entrée d'une position
(fonction membre publique) |
|
|
remet un caractère dans la séquence d'entrée
(fonction membre publique) |