[spanbuf.assign]

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

## 31.9 Span-based streams [[span.streams]](span.streams#spanbuf.assign)

### 31.9.3 Class template basic_spanbuf [[spanbuf]](spanbuf#assign)

#### 31.9.3.3 Assignment and swap [spanbuf.assign]

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

`basic_spanbuf& operator=(basic_spanbuf&& rhs);
`

[1](#1)

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

*Effects*: Equivalent to:basic_spanbuf tmp{std::move(rhs)};this->swap(tmp);return *this;

[ð](#lib:swap,basic_spanbuf)

`void swap(basic_spanbuf& rhs);
`

[2](#2)

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

*Effects*: Equivalent to:basic_streambuf<charT, traits>::swap(rhs);
std::swap(*mode*, rhs.*mode*);
std::swap(*buf*, rhs.*buf*);

[ð](#lib:swap,basic_spanbuf_)

`template<class charT, class traits>
  void swap(basic_spanbuf<charT, traits>& x, basic_spanbuf<charT, traits>& y);
`

[3](#3)

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

*Effects*: Equivalent to x.swap(y)[.](#3.sentence-1)
