Annex D (normative) Compatibility features [depr]

D.10 char* streams [depr.str.strstreams]

D.10.2 Class strstreambuf [depr.strstreambuf]

D.10.2.1 strstreambuf constructors [depr.strstreambuf.cons]

explicit strstreambuf(streamsize alsize_arg);
Effects: Constructs an object of class strstreambuf, initializing the base class with streambuf().
The postconditions of this function are indicated in Table 146.
Table 146: strstreambuf(streamsize) effects   [tab:depr.strstreambuf.cons.sz]
Element
Value
strmode
dynamic
alsize
alsize_­arg
palloc
a null pointer
pfree
a null pointer
strstreambuf(void* (*palloc_arg)(size_t), void (*pfree_arg)(void*));
Effects: Constructs an object of class strstreambuf, initializing the base class with streambuf().
The postconditions of this function are indicated in Table 147.
Table 147: strstreambuf(void* (*)(size_­t), void (*)(void*)) effects   [tab:depr.strstreambuf.cons.alloc]
Element
Value
strmode
dynamic
alsize
an unspecified value
palloc
palloc_­arg
pfree
pfree_­arg
strstreambuf(char* gnext_arg, streamsize n, char* pbeg_arg = nullptr); strstreambuf(signed char* gnext_arg, streamsize n, signed char* pbeg_arg = nullptr); strstreambuf(unsigned char* gnext_arg, streamsize n, unsigned char* pbeg_arg = nullptr);
Effects: Constructs an object of class strstreambuf, initializing the base class with streambuf().
The postconditions of this function are indicated in Table 148.
Table 148: strstreambuf(charT*, streamsize, charT*) effects   [tab:depr.strstreambuf.cons.ptr]
Element
Value
strmode
0
alsize
an unspecified value
palloc
a null pointer
pfree
a null pointer
gnext_­arg shall point to the first element of an array object whose number of elements N is determined as follows:
  • If n > 0, N is n.
  • If n == 0, N is std​::​strlen(gnext_­arg).
  • If n < 0, N is INT_­MAX.328
If pbeg_­arg is a null pointer, the function executes:
setg(gnext_arg, gnext_arg, gnext_arg + N);
Otherwise, the function executes:
setg(gnext_arg, gnext_arg, pbeg_arg);
setp(pbeg_arg,  pbeg_arg + N);
strstreambuf(const char* gnext_arg, streamsize n); strstreambuf(const signed char* gnext_arg, streamsize n); strstreambuf(const unsigned char* gnext_arg, streamsize n);
Effects: Behaves the same as strstreambuf((char*)gnext_­arg,n), except that the constructor also sets constant in strmode.
virtual ~strstreambuf();
Effects: Destroys an object of class strstreambuf.
The function frees the dynamically allocated array object only if (strmode & allocated) != 0 and (strmode & frozen) == 0.
([depr.strstreambuf.virtuals] describes how a dynamically allocated array object is freed.)
The function signature strlen(const char*) is declared in <cstring> ([cstring.syn]).
The macro INT_­MAX is defined in <climits> ([climits.syn]).