30 Input/output library [input.output]

30.6 Stream buffers [stream.buffers]

30.6.2 Stream buffer requirements [streambuf.reqts]

Stream buffers can impose various constraints on the sequences they control. Some constraints are:

Each sequence is characterized by three pointers which, if non-null, all point into the same charT array object. The array object represents, at any moment, a (sub)sequence of characters from the sequence. Operations performed on a sequence alter the values stored in these pointers, perform reads and writes directly to or from associated sequences, and alter “the stream position” and conversion state as needed to maintain this subsequence relationship. The three pointers are:

The following semantic constraints shall always apply for any set of three pointers for a sequence, using the pointer names given immediately above: