[streambuf.get.area] # 31 Input/output library [[input.output]](./#input.output) ## 31.6 Stream buffers [[stream.buffers]](stream.buffers#streambuf.get.area) ### 31.6.3 Class template basic_streambuf [[streambuf]](streambuf#get.area) #### 31.6.3.4 Protected member functions [[streambuf.protected]](streambuf.protected#streambuf.get.area) #### 31.6.3.4.2 Get area access [streambuf.get.area] [🔗](#lib:eback,basic_streambuf) `char_type* eback() const; ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3463) *Returns*: The beginning pointer for the input sequence[.](#1.sentence-1) [🔗](#lib:gptr,basic_streambuf) `char_type* gptr() const; ` [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3474) *Returns*: The next pointer for the input sequence[.](#2.sentence-1) [🔗](#lib:egptr,basic_streambuf) `char_type* egptr() const; ` [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3485) *Returns*: The end pointer for the input sequence[.](#3.sentence-1) [🔗](#lib:gbump,basic_streambuf) `void gbump(int n); ` [4](#4) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3496) *Effects*: Adds n to the next pointer for the input sequence[.](#4.sentence-1) [🔗](#lib:setg,basic_streambuf) `void setg(char_type* gbeg, char_type* gnext, char_type* gend); ` [5](#5) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3507) *Preconditions*: [gbeg, gnext), [gbeg, gend), and [gnext, gend) are all valid ranges[.](#5.sentence-1) [6](#6) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3512) *Postconditions*: gbeg == eback(),gnext == gptr(), andgend == egptr() are all true[.](#6.sentence-1)