[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::swap(rhs); std::swap(*mode*, rhs.*mode*); std::swap(*buf*, rhs.*buf*); [🔗](#lib:swap,basic_spanbuf_) `template void swap(basic_spanbuf& x, basic_spanbuf& y); ` [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10231) *Effects*: Equivalent to x.swap(y)[.](#3.sentence-1)