[iostream.cons] # 31 Input/output library [[input.output]](./#input.output) ## 31.7 Formatting and manipulators [[iostream.format]](iostream.format#iostream.cons) ### 31.7.5 Input streams [[input.streams]](input.streams#iostream.cons) #### 31.7.5.7 Class template basic_iostream [[iostreamclass]](iostreamclass#iostream.cons) #### 31.7.5.7.2 Constructors [iostream.cons] [🔗](#lib:basic_iostream,constructor) `explicit basic_iostream(basic_streambuf* sb); ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L5842) *Effects*: Initializes the base class subobjects withbasic_istream(sb) ([[istream]](istream "31.7.5.2 Class template basic_­istream")) and[basic_ostream(sb)](ostream "31.7.6.2 Class template basic_­ostream [ostream]")[.](#1.sentence-1) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L5849) *Postconditions*: rdbuf() == sb andgcount() == 0[.](#2.sentence-1) [🔗](#lib:basic_iostream,constructor_) `basic_iostream(basic_iostream&& rhs); ` [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L5862) *Effects*: Move constructs from the rvalue rhs by constructing the basic_istream base class withstd​::​move(rhs)[.](#3.sentence-1)