std:: basic_spanbuf
|
Défini dans l'en-tête
<spanstream>
|
||
|
template
<
class
CharT,
|
(depuis C++23) | |
std::basic_spanbuf
est un
std::basic_streambuf
dont la séquence de caractères associée est une séquence résidant en mémoire de caractères arbitraires, qui peut être initialisée à partir ou rendue disponible en tant qu'instance de
std::
span
<
CharT
>
.
std::basic_spanbuf
effectue des entrées/sorties sur un tampon fixe, et par conséquent il ne tente pas d'obtenir un nouveau tampon lorsque le tampon sous-jacent est épuisé.
Plusieurs typedefs pour les types de caractères courants sont fournis :
|
Défini dans l'en-tête
<spanstream>
|
|
| Type | Définition |
std::spanbuf
|
std :: basic_spanbuf < char > |
std::wspanbuf
|
std :: basic_spanbuf < wchar_t > |
Table des matières |
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
|
Membres de données
| Nom du membre | Définition |
mod
(privé)
|
Un
std::ios_base::openmode
enregistrant le mode d'ouverture.
( objet membre d'exposition uniquement* ) |
buf
(privé)
|
Un
std::
span
<
CharT
>
référençant le tampon sous-jacent.
( objet membre d'exposition uniquement* ) |
Fonctions membres
Fonctions membres publiques |
|
construit un objet
basic_spanbuf
(fonction membre publique) |
|
|
(destructeur)
[virtuel]
|
détruit l'objet
basic_spanbuf
(fonction membre publique virtuelle) |
assigne un objet
basic_spanbuf
(fonction membre publique) |
|
échange deux objets
basic_spanbuf
(fonction membre publique) |
|
|
obtient ou initialise un tampon sous-jacent selon le mode
(fonction membre publique) |
|
Fonctions membres protégées |
|
|
[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, 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, de sortie, ou les deux en utilisant l'adressage absolu
(fonction membre protégée virtuelle) |
Fonctions non membres
|
(C++23)
|
spécialise l'algorithme
std::swap
(modèle de fonction) |
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 de 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 d'écriture
(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 de 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 potentiellement la séquence d'entrée
(fonction membre protégée virtuelle de
std::basic_streambuf<CharT,Traits>
)
|
Notes
std::basic_spanbuf
ne possède pas le tampon sous-jacent.
Il est de la responsabilité des programmeurs de s'assurer que le tampon sous-jacent est dans sa durée de vie lorsqu'il est utilisé par un objet
std::basic_spanbuf
. Une synchronisation supplémentaire peut être nécessaire si plusieurs threads manipulent le même tampon sous-jacent via différents objets
std::basic_spanbuf
.
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_spanstream
|
202106L
|
(C++23) |
std::spanbuf
,
std::spanstream
|
Voir aussi
|
implémente un périphérique de chaîne brut
(modèle de classe) |
|
|
(obsolète en C++98)
(supprimé en C++26)
|
implémente un périphérique de tableau de caractères brut
(classe) |