[streambuf.assign]

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

## 31.6 Stream buffers [[stream.buffers]](stream.buffers#streambuf.assign)

### 31.6.3 Class template basic_streambuf [[streambuf]](streambuf#assign)

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

#### 31.6.3.4.1 Assignment [streambuf.assign]

[ð](#lib:operator=,basic_streambuf)

`basic_streambuf& operator=(const basic_streambuf& rhs);
`

[1](#1)

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

*Postconditions*: 

- [(1.1)](#1.1)

eback() == rhs.eback()

- [(1.2)](#1.2)

gptr() == rhs.gptr()

- [(1.3)](#1.3)

egptr() == rhs.egptr()

- [(1.4)](#1.4)

pbase() == rhs.pbase()

- [(1.5)](#1.5)

pptr() == rhs.pptr()

- [(1.6)](#1.6)

epptr() == rhs.epptr()

- [(1.7)](#1.7)

getloc() == rhs.getloc()

[2](#2)

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

*Returns*: *this[.](#2.sentence-1)

[ð](#lib:swap,basic_streambuf)

`void swap(basic_streambuf& rhs);
`

[3](#3)

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

*Effects*: Swaps the data members of rhs and *this[.](#3.sentence-1)
