The memory allocation strategy of operator<<() for strings is not specified; in other words, the strategy is implementation-dependent.
The behavior of an input file stream's sync() function is implementation-dependent. An input file stream's sync() function should synchronize the input sequence with the input file; that is, it should refill the buffer from the current position on, or the draft should state exactly what the sync() function does.
It is unspecified--that is, implementation-dependent--how pword() and iword() indicate failure. Possible choices could be throwing a bad_alloc exception, or setting failbit.
Rogue Wave's implementation uses operator new for allocating these arrays, which means that bad_alloc will be thrown.
It is unspecified what happens if iword() or pword() are provided with an index that was not returned by a previous call to xalloc().
Rogue Wave's implementation allocates as much memory as necessary to provide the requested array entry.
Open Issues in the Standard
A call to a stream's imbue() function changes the stream buffer's locale object as well. This is a problem when two streams share a stream buffer and the streams' locales have different code conversion facets.
It is unspecified when calls to a stream's imbue() function are allowed. This is especially crucial when code conversion needs to be performed.
©Copyright 1996, Rogue Wave Software, Inc.