strstreambuf::strstreambuf
Vytvoří objekt typu 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
);
Parametry
_Allocfunc
Funkce slouží k přidělení vyrovnávací paměti._Count
Určuje délku vyrovnávací paměti odkazuje _Getptr.Pokud _Getptr není argument (první konstruktoru formuláře) navrhované rozdělení velikosti pro vyrovnávací paměť._Freefunc
Použitá funkce uvolnit vyrovnávací paměti._Getptr
Vyrovnávací paměť pro vstup._Putptr
Vyrovnávací paměť pro výstup.
Poznámky
První konstruktor ukládá všechny ukazatele řízení vstupní vyrovnávací paměti, výstupní vyrovnávací paměť a přidělení strstreambuf ukazatel s hodnotou null.Nastaví režim uložené strstreambuf provádět řízené sekvence upravitelné a prodloužit.Také přijímá _Count jako navrhované počáteční přidělovanou velikost.
Druhý konstruktor se chová jako první, s výjimkou, že ukládá _Allocfunc jako ukazatel na funkci volat přidělení úložiště a _Freefunc jako ukazatel na funkci volat uvolnit úložiště.
Tři konstruktory:
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);
také chovat jako první, s výjimkou _Getptr označí objekt array jímán řízené sekvence.(Tedy nesmí být ukazatele null.) Počet prvků n pole se určí takto:
If (_Count > 0), then N is count.
If (_Count == 0), then N is strlen( (constchar *)_Getptr ).
If (_Count < 0), then N is INT_MAX.
Pokud _Putptr je nulový ukazatel funkce provedením stanoví pouze vstupní vyrovnávací paměti:
setg(_Getptr, _Getptr, _Getptr + N);
Jinak stanoví vstupní i výstupní vyrovnávací paměti spuštěním:
setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);
In this case, _Putptrmust be in the interval _Getptr, _Getptr + N.
Nakonec tři konstruktory:
strstreambuf(const char *_Getptr, streamsize _Count);
strstreambuf(const signed char *_Getptr, streamsize _Count);
strstreambuf(const unsigned char *_Getptr, streamsize _Count);
všechny chovají stejně jako:
streambuf( (char *)_Getptr, _Count );
Kromě toho, že uložené režim neposkytuje řízené sekvence ani měnit ani prodloužit.
Požadavky
Záhlaví: <strstream>
Obor názvů: std