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: