[sstream.syn] # 31 Input/output library [[input.output]](./#input.output) ## 31.8 String-based streams [[string.streams]](string.streams#sstream.syn) ### 31.8.1 Header synopsis [sstream.syn] [🔗](#header:%3csstream%3e) namespace std {// [[stringbuf]](stringbuf "31.8.2 Class template basic_­stringbuf"), class template basic_stringbuftemplate, class Allocator = allocator>class basic_stringbuf; templatevoid swap(basic_stringbuf& x, basic_stringbuf& y) noexcept(noexcept(x.swap(y))); using stringbuf = basic_stringbuf; using wstringbuf = basic_stringbuf; // [[istringstream]](istringstream "31.8.3 Class template basic_­istringstream"), class template basic_istringstreamtemplate, class Allocator = allocator>class basic_istringstream; templatevoid swap(basic_istringstream& x, basic_istringstream& y); using istringstream = basic_istringstream; using wistringstream = basic_istringstream; // [[ostringstream]](ostringstream "31.8.4 Class template basic_­ostringstream"), class template basic_ostringstreamtemplate, class Allocator = allocator>class basic_ostringstream; templatevoid swap(basic_ostringstream& x, basic_ostringstream& y); using ostringstream = basic_ostringstream; using wostringstream = basic_ostringstream; // [[stringstream]](stringstream "31.8.5 Class template basic_­stringstream"), class template basic_stringstreamtemplate, class Allocator = allocator>class basic_stringstream; templatevoid swap(basic_stringstream& x, basic_stringstream& y); using stringstream = basic_stringstream; using wstringstream = basic_stringstream;} [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L8012) The header [](#header:%3csstream%3e "31.8.1 Header synopsis [sstream.syn]") defines four class templates and eight types that associate stream buffers with objects of classbasic_string,as described in [[string.classes]](string.classes "27.4 String classes")[.](#1.sentence-1)