std::strstreambuf:: setbuf
|
protected
:
virtual streambuf * setbuf ( char * s, std:: streamsize n ) ; |
(obsolète en C++98)
(supprimé en C++26) |
|
Si s est un pointeur nul et n est zéro, cette fonction n'a aucun effet.
Sinon, l'effet est défini par l'implémentation : certaines implémentations ne font rien, tandis que certaines implémentations désallouent le tableau membre dynamique utilisé comme tampon et commencent à utiliser le tableau de caractères fourni par l'utilisateur de taille n , dont le premier élément est pointé par s .
Cette fonction est protégée virtuelle, elle ne peut être appelée qu'à travers
pubsetbuf()
ou depuis les fonctions membres d'une classe définie par l'utilisateur dérivée de
std::strstreambuf
.
Table des matières |
Paramètres
| s | - | pointeur vers le premier octet dans le tampon fourni par l'utilisateur |
| n | - | le nombre d'octets dans le tampon fourni par l'utilisateur |
Valeur de retour
this
Exemple
Test d'implémentation pour vérifier si
setbuf()
est supporté sur un strstream dynamique (résultat obtenu avec Sun Studio) :
#include <iostream> #include <strstream> int main() { char a[100] = {}; std::strstream str; str.rdbuf()->pubsetbuf(a, sizeof a); str << "Test string" << std::ends; std::cout << "user-provided buffer holds \"" << a << "\"\n"; }
Sortie possible :
user-provided buffer holds "Test string"
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 66 | C++98 |
l'effet de
setbuf()
était "effectue une opération
définie séparément pour chaque classe dérivée de
strstreambuf
",
mais il n'existe pas de classes dérivées de
strstreambuf
|
l'effet est
défini par l'implémentation |
Voir aussi
|
invoque
setbuf
(
)
(fonction membre publique de
std::basic_streambuf<CharT,Traits>
)
|
|
|
[virtual]
|
remplace le tampon par un tableau défini par l'utilisateur, si permis
(fonction membre protégée virtuelle de
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
tente de remplacer la séquence de caractères contrôlée par un tableau
(fonction membre protégée virtuelle de
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
fournit un tampon fourni par l'utilisateur ou rend ce filebuf non tamponné
(fonction membre protégée virtuelle de
std::basic_filebuf<CharT,Traits>
)
|