Namespaces
Variants

std:: strstreambuf

From cppreference.net
< cpp ‎ | io
Défini dans l'en-tête <strstream>
class strstreambuf : public std:: basic_streambuf < char >
(déprécié en C++98)
(supprimé en C++26)

std::strstreambuf est un std::basic_streambuf dont la séquence de caractères associée est un tableau de caractères, qui peut être constant (par exemple un littéral de chaîne), modifiable mais non dynamique (par exemple un tableau alloué sur la pile), ou dynamique, auquel cas le std::strstreambuf peut être autorisé à réallouer le tableau si nécessaire pour accommoder la sortie (par exemple en appelant delete [ ] et new [ ] ou des fonctions fournies par l'utilisateur).

Implémentation typique d'un std::strstreambuf contient quatre membres de données privés :

1) état du tampon, un type de masque de bits qui peut représenter n'importe quelle combinaison des quatre valeurs "allocated" (le destructeur désallouera), "constant" (sortie non autorisée), "dynamic" (la sortie peut réallouer), ou "frozen" (la désallocation et la réallocation ne sont pas autorisées)
2) taille du tampon alloué (le début du tampon ne nécessite pas un membre de données spécial, il peut être stocké dans le pointeur hérité eback() )
3) pointeur vers la fonction d'allocation fournie par l'utilisateur
4) pointeur vers la fonction de désallocation fournie par l'utilisateur.

Table des matières

Notes

Après tout appel à str() sur un flux avec un tampon dynamique, un appel à freeze(false) est requis pour permettre au destructeur de strstreambuf de désallouer le tampon lorsque nécessaire.

strstreambuf est déprécié depuis C++98 et supprimé depuis C++26 . Le remplacement recommandé est std::spanbuf (depuis C++23) .

Fonctions membres

Fonctions membres publiques

construit un objet strstreambuf
(fonction membre publique)
[virtuel]
détruit un objet strstreambuf , en désallouant optionnellement le tableau de caractères
(fonction membre publique virtuelle)
définit/efface l'état gelé du tampon
(fonction membre publique)
marque le tampon comme gelé et retourne le pointeur de début de la séquence d'entrée
(fonction membre publique)
retourne le pointeur suivant moins le pointeur de début dans la séquence de sortie : le nombre de caractères écrits
(fonction membre publique)

Fonctions membres protégées

[virtuel]
lit un caractère de la séquence d'entrée sans avancer le pointeur suivant
(fonction membre protégée virtuelle)
[virtuel]
recule dans la séquence d'entrée pour "déposer" un caractère
(fonction membre protégée virtuelle)
[virtuel]
ajoute un caractère à la séquence de sortie, peut réallouer ou allouer initialement le tampon s'il est dynamique et non gelé
(fonction membre protégée virtuelle)
[virtuel]
tente de remplacer la séquence de caractères contrôlée par un tableau
(fonction membre protégée virtuelle)
[virtuel]
repositionne le pointeur suivant dans la séquence d'entrée, la séquence de sortie, ou les deux, en utilisant l'adressage relatif
(fonction membre protégée virtuelle)
[virtuel]
repositionne le pointeur suivant dans la séquence d'entrée, la séquence de sortie, ou les deux en utilisant l'adressage absolu
(fonction membre protégée virtuelle)

Hérité de std:: basic_streambuf

Types membres

Type de membre Définition
char_type CharT
traits_type Traits ; le programme est mal formé si Traits::char_type n'est pas CharT .
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

Fonctions membres

[virtuel]
détruit l'objet basic_streambuf
(fonction membre publique virtuelle de std::basic_streambuf<CharT,Traits> )
Locales
modifie la locale associée et invoque imbue ( )
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
obtient une copie de la locale associée
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
Positionnement
invoque setbuf ( )
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
invoque seekoff ( )
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
invoque seekpos ( )
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
invoque sync ( )
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
Zone de lecture
obtient le nombre de caractères immédiatement disponibles dans la zone de lecture
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
avance la séquence d'entrée, puis lit un caractère sans avancer à nouveau
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
(supprimé en C++17)
lit un caractère de la séquence d'entrée et avance la séquence
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
lit un caractère de la séquence d'entrée sans avancer la séquence
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
invoque xsgetn ( )
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
Zone d'écriture
écrit un caractère dans la zone d'écriture et avance le pointeur suivant
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
invoque xsputn ( )
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
Remise
remet un caractère dans la séquence d'entrée
(fonction membre publique 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> )

Fonctions membres protégées

construit un objet basic_streambuf
(fonction membre protégée)
(C++11)
remplace un objet basic_streambuf
(fonction membre protégée)
(C++11)
échange deux basic_streambuf objects
(fonction membre protégée)
Locales
[virtual]
réagit à un changement de la locale associée
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
Positionnement
[virtual]
remplace le tampon par un tableau défini par l'utilisateur, si autorisé
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
[virtual]
repositionne le pointeur suivant dans la séquence d'entrée, la séquence de sortie, ou les deux, en utilisant l'adressage relatif
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
[virtual]
repositionne le pointeur suivant dans la séquence d'entrée, la séquence de sortie, ou les deux en utilisant l'adressage absolu
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
[virtual]
synchronise les tampons avec la séquence de caractères associée
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
Obtenir la surface
[virtual]
obtient le nombre de caractères disponibles en entrée dans la séquence d'entrée associée, si connu
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
[virtual]
lit les caractères de la séquence d'entrée associée vers la zone de réception
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
[virtual]
lit les caractères de la séquence d'entrée associée vers la zone de récupération et avance le pointeur suivant
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
[virtual]
lit plusieurs caractères de la séquence d'entrée
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
renvoie un pointeur vers le début, le caractère courant et la fin de la zone de lecture
(fonction membre protégée)
avance le pointeur suivant dans la séquence d'entrée
(fonction membre protégée)
repositionne les pointeurs de début, suivant et fin de la séquence d'entrée
(fonction membre protégée)
Zone de placement
[virtual]
écrit plusieurs caractères dans la séquence de sortie
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
[virtual]
écrit des caractères dans la séquence de sortie associée depuis la zone de mise en mémoire tampon
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
retourne un pointeur vers le début, le caractère courant et la fin de la zone de mise
(fonction membre protégée)
avance le pointeur suivant de la séquence de sortie
(fonction membre protégée)
repositionne les pointeurs de début, suivant et fin de la séquence de sortie
(fonction membre protégée)
Putback
[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> )