This commit is contained in:
2025-10-25 03:02:53 +03:00
commit 043225d523
3416 changed files with 681196 additions and 0 deletions

View File

@@ -0,0 +1,196 @@
[streambuf.protected]
# 31 Input/output library [[input.output]](./#input.output)
## 31.6 Stream buffers [[stream.buffers]](stream.buffers#streambuf.protected)
### 31.6.3 Class template basic_streambuf [[streambuf]](streambuf#protected)
#### 31.6.3.4 Protected member functions [streambuf.protected]
#### [31.6.3.4.1](#streambuf.assign) Assignment [[streambuf.assign]](streambuf.assign)
[🔗](#lib:operator=,basic_streambuf)
`basic_streambuf& operator=(const basic_streambuf& rhs);
`
[1](#streambuf.assign-1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3426)
*Postconditions*:
- [(1.1)](#streambuf.assign-1.1)
eback() == rhs.eback()
- [(1.2)](#streambuf.assign-1.2)
gptr() == rhs.gptr()
- [(1.3)](#streambuf.assign-1.3)
egptr() == rhs.egptr()
- [(1.4)](#streambuf.assign-1.4)
pbase() == rhs.pbase()
- [(1.5)](#streambuf.assign-1.5)
pptr() == rhs.pptr()
- [(1.6)](#streambuf.assign-1.6)
epptr() == rhs.epptr()
- [(1.7)](#streambuf.assign-1.7)
getloc() == rhs.getloc()
[2](#streambuf.assign-2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3438)
*Returns*: *this[.](#streambuf.assign-2.sentence-1)
[🔗](#lib:swap,basic_streambuf)
`void swap(basic_streambuf& rhs);
`
[3](#streambuf.assign-3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3449)
*Effects*: Swaps the data members of rhs and *this[.](#streambuf.assign-3.sentence-1)
#### [31.6.3.4.2](#streambuf.get.area) Get area access [[streambuf.get.area]](streambuf.get.area)
[🔗](#lib:eback,basic_streambuf)
`char_type* eback() const;
`
[1](#streambuf.get.area-1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3463)
*Returns*: The beginning pointer for the input sequence[.](#streambuf.get.area-1.sentence-1)
[🔗](#lib:gptr,basic_streambuf)
`char_type* gptr() const;
`
[2](#streambuf.get.area-2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3474)
*Returns*: The next pointer for the input sequence[.](#streambuf.get.area-2.sentence-1)
[🔗](#lib:egptr,basic_streambuf)
`char_type* egptr() const;
`
[3](#streambuf.get.area-3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3485)
*Returns*: The end pointer for the input sequence[.](#streambuf.get.area-3.sentence-1)
[🔗](#lib:gbump,basic_streambuf)
`void gbump(int n);
`
[4](#streambuf.get.area-4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3496)
*Effects*: Adds n to the next pointer for the input sequence[.](#streambuf.get.area-4.sentence-1)
[🔗](#lib:setg,basic_streambuf)
`void setg(char_type* gbeg, char_type* gnext, char_type* gend);
`
[5](#streambuf.get.area-5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3507)
*Preconditions*: [gbeg, gnext), [gbeg, gend), and [gnext, gend)
are all valid ranges[.](#streambuf.get.area-5.sentence-1)
[6](#streambuf.get.area-6)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3512)
*Postconditions*: gbeg == eback(),gnext == gptr(),
andgend == egptr() are all true[.](#streambuf.get.area-6.sentence-1)
#### [31.6.3.4.3](#streambuf.put.area) Put area access [[streambuf.put.area]](streambuf.put.area)
[🔗](#lib:pbase,basic_streambuf)
`char_type* pbase() const;
`
[1](#streambuf.put.area-1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3528)
*Returns*: The beginning pointer for the output sequence[.](#streambuf.put.area-1.sentence-1)
[🔗](#lib:pptr,basic_streambuf)
`char_type* pptr() const;
`
[2](#streambuf.put.area-2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3539)
*Returns*: The next pointer for the output sequence[.](#streambuf.put.area-2.sentence-1)
[🔗](#lib:epptr,basic_streambuf)
`char_type* epptr() const;
`
[3](#streambuf.put.area-3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3550)
*Returns*: The end pointer for the output sequence[.](#streambuf.put.area-3.sentence-1)
[🔗](#lib:pbump,basic_streambuf)
`void pbump(int n);
`
[4](#streambuf.put.area-4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3561)
*Effects*: Adds n to the next pointer for the output sequence[.](#streambuf.put.area-4.sentence-1)
[🔗](#lib:setp,basic_streambuf)
`void setp(char_type* pbeg, char_type* pend);
`
[5](#streambuf.put.area-5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3572)
*Preconditions*: [pbeg, pend) is a valid range[.](#streambuf.put.area-5.sentence-1)
[6](#streambuf.put.area-6)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L3576)
*Postconditions*: pbeg == pbase(),pbeg == pptr(),
andpend == epptr() are all true[.](#streambuf.put.area-6.sentence-1)