strstreambuf::strstreambuf
Crée un objet avec du type strstreambuf.
explicit strstreambuf(
streamsize _Count = 0
);
strstreambuf(
void ( *_Allocfunc )( size_t ),
void ( *_Freefunc )( void * )
);
strstreambuf(
char *_Getptr,
streamsize _Count,
char *_Putptr = 0
);
strstreambuf(
signed char *_Getptr,
streamsize _Count,
signed char *_Putptr = 0
);
strstreambuf(
unsigned char *_Getptr,
streamsize _Count,
unsigned char *_Putptr = 0
);
strstreambuf(
const char *_Getptr,
streamsize _Count
);
strstreambuf(
const signed char *_Getptr,
streamsize _Count
);
strstreambuf(
const unsigned char *_Getptr,
streamsize _Count
);
Paramètres
_Allocfunc
La fonction utilisée pour allouer de la mémoire tampon._Count
Détermine la longueur de la mémoire tampon pointée pointe vers _Getptr.Si _Getptr n'est pas un argument (premier formulaire de constructeur), une taille suggérée d'allocation de la mémoire tampon._Freefunc
La fonction utilisée pour libérer la mémoire tampon._Getptr
Une mémoire tampon utilisée pour l'entrée._Putptr
Une mémoire tampon utilisée pour la sortie.
Notes
Le premier constructeur stocke un pointeur null dans tous les pointeurs vérifiant la mémoire tampon d'entrée, la mémoire tampon de sortie, et l'allocation de strstreambuf.Il définit le mode stocké de strstreambuf pour rendre l'ordre d'exécution des instructions modifiable et extensible.Il accepte également _Count comme une taille initiale suggérée d'allocation.
Le deuxième constructeur se comporte comme le premier, mais il stocke le _Allocfunc comme pointeur vers une fonction pour appeler pour allouer de la mémoire et le _Freefunc comme pointeur vers une fonction à l'appel pour libérer la mémoire.
Les trois constructeurs :
strstreambuf(char *_Getptr, streamsize count,
char *putptr = 0);
strstreambuf(signed char *_Getptr, streamsize count,
signed char *putptr = 0);
strstreambuf(unsigned char *_Getptr, streamsize count,
unsigned char *putptr = 0);
se comportent également comme le premier, sauf qu' _Getptr indique l'objet tableau utilisé pour stocker l'ordre d'exécution des instructions.(Par conséquent, il ne doit pas être un pointeur null.) Le nombre d'éléments N du tableau est déterminée comme suit :
Si (_Count > 0), tandis N est count.
Si == d' (_Count 0)ensuite, N est strlen((constchar *)_Getptr ).
Si (_Count < 0), tandis N est INT_MAX.
Si _Putptr est un pointeur null, la fonction génère uniquement une mémoire tampon d'entrée en exécutant :
setg(_Getptr, _Getptr, _Getptr + N);
Sinon, il génère les deux mémoires tampons d'entrée et de sortie en exécutant :
setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);
Dans ce cas, _Putptr doit être comprise entre [_Getptr, _Getptr + N].
Enfin, les trois constructeurs :
strstreambuf(const char *_Getptr, streamsize _Count);
strstreambuf(const signed char *_Getptr, streamsize _Count);
strstreambuf(const unsigned char *_Getptr, streamsize _Count);
tous se comportent de la même manière que :
streambuf( (char *)_Getptr, _Count );
sauf que l'état stocké ne rend l'ordre d'exécution des instructions ni modifiable ou extensible.
Configuration requise
en-tête : <strstream>
l'espace de noms : DST