strstreambuf::strstreambuf
Construit un objet de 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 la mémoire tampon._Count
Détermine la taille de la mémoire tampon vers laquelle pointe _Getptr. Si _Getptr n'est pas un argument (premier formulaire de constructeur), la taille d'allocation suggérée pour les mémoires 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 enregistre un pointeur null dans tous les pointeurs contrôlant le tampon d'entrée et le tampon de sortie, et l'allocation strstreambuf. Il définit le mode de strstreambuf stockée pour rendre la séquence contrôlée modifiable et extensible. Il accepte également _Count comme une taille initiale suggérée d'allocation.
Le deuxième constructeur se comporte comme la première, sauf qu'il stocke _Allocfunc en tant que pointeur à la fonction à appeler pour allouer le stockage et _Freefunc en tant que pointeur sur la fonction à appeler pour libérer le stockage.
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 comme le premier, sauf que _Getptr indique l'objet table utilisé pour contenir la séquence contrôlée. (Par conséquent, il ne doit pas être un pointeur null.) Le nombre d'éléments N dans le tableau est déterminé comme suit :
Si_Count > (0), alors N est count.
Si (_Count == 0), alors N est strlen( (const char *)_Getptr ).
Si (_Count < 0), alors N est INT_MAX.
Si _Putptr est un pointeur null, la fonction génère immédiatement un tampon d'entrée en exécutant :
setg(_Getptr, _Getptr, _Getptr + N);
Sinon, elle 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 dans l'intervalle [_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);
se comportent tous de la même manière que :
streambuf( (char *)_Getptr, _Count );
mais le mode stocké rend la séquence contrôlée ni modifiable ni extensible.
Configuration requise
En-tête : <strstream>
Espace de noms : std