basic_streambuf::overflow
Une fonction virtuelle protégée qui peut être appelée lorsqu'un nouveau caractère est inséré dans une mémoire tampon complète.
virtual int_type overflow(
int_type _Meta = traits_type::eof( )
);
Paramètres
- _Meta
Le caractère à insérer dans la mémoire tampon, ou traits_type::eof.
Valeur de retour
Si la fonction ne peut pas réussir, elle retourne traits_type::eof ou lève une exception.Sinon, il retourne traits_type::not_eof(_Meta).Le comportement par défaut consiste à retourner traits_type::eof.
Notes
Si le _Meta ne compare pas égale à traits_type::eof, la fonction membre virtuelle protégée essaie d'insérer l'élément traits_type::to_char_type(_Meta) dans le flux de sortie.Il peut le faire de différentes manières :
Si write position est disponible, il peut stocker l'élément dans la position d'écriture et incrémenter le pointeur " après " pour la mémoire tampon de sortie.
Elle peut rendre une position d'écriture disponible en allouant nouveau ou stockage supplémentaire pour la mémoire tampon de sortie.
Il peut rendre une position d'écriture disponible en écrivant, une certaine destination externe, à certains ou à tous les éléments entre le début et les pointeurs " après " pour la mémoire tampon de sortie.
La fonction virtuelle de dépassement de capacité, avec les fonctions de synchronisation et de dépassement de capacité , définit les caractéristiques de la classe streambuf- dérivée.Chaque classe dérivée peut implémenter le dépassement différemment, mais l'interface avec la classe d'appel de flux est identique.
La fonction d' overflow le plus souvent est appelée par les fonctions publiques d' streambuf comme sputc et sputn lorsque la mise zone est terminée, mais d'autres classes, notamment les classes de flux, peuvent appeler overflow à tout moment.
La fonction utilise les caractères dans la zone mise entre pbase et les pointeurs d' pptr puis réinitialise la zone implémentation.La fonction d' overflow doit également utiliser nCh (si nCh n'est pas EOF), ou il peut choisir de placer ce caractère dans la zone mise afin qu'elle soit consommée sur l'appel.
La définition de consomment varie entre les classes dérivées.Par exemple, la classe d' filebuf écrit des caractères dans un fichier, alors que la classe d' strstreambuf les conserve dans sa mémoire tampon et (si la mémoire tampon désignée comme dynamique) se développe la mémoire tampon en réponse à un appel pour provoquer un.Cette expansion est accomplie en libérant la mémoire tampon ancienne et en remplaçant par nouvelle, plus grande.Les pointeurs sont définis selon vos besoins.
Configuration requise
en-tête : <streambuf>
l'espace de noms : DST