[streambuf.put.area]

# 31 Input/output library [[input.output]](./#input.output)

## 31.6 Stream buffers [[stream.buffers]](stream.buffers#streambuf.put.area)

### 31.6.3 Class template basic_streambuf [[streambuf]](streambuf#put.area)

#### 31.6.3.4 Protected member functions [[streambuf.protected]](streambuf.protected#streambuf.put.area)

#### 31.6.3.4.3 Put area access [streambuf.put.area]

[ð](#lib:pbase,basic_streambuf)

`char_type* pbase() const;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3528)

*Returns*: The beginning pointer for the output sequence[.](#1.sentence-1)

[ð](#lib:pptr,basic_streambuf)

`char_type* pptr() const;
`

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3539)

*Returns*: The next pointer for the output sequence[.](#2.sentence-1)

[ð](#lib:epptr,basic_streambuf)

`char_type* epptr() const;
`

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3550)

*Returns*: The end pointer for the output sequence[.](#3.sentence-1)

[ð](#lib:pbump,basic_streambuf)

`void pbump(int n);
`

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3561)

*Effects*: Adds n to the next pointer for the output sequence[.](#4.sentence-1)

[ð](#lib:setp,basic_streambuf)

`void setp(char_type* pbeg, char_type* pend);
`

[5](#5)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3572)

*Preconditions*: [pbeg, pend) is a valid range[.](#5.sentence-1)

[6](#6)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3576)

*Postconditions*: pbeg == pbase(),pbeg == pptr(),
andpend == epptr() are all true[.](#6.sentence-1)
