[istream.cons] # 31 Input/output library [[input.output]](./#input.output) ## 31.7 Formatting and manipulators [[iostream.format]](iostream.format#istream.cons) ### 31.7.5 Input streams [[input.streams]](input.streams#istream.cons) #### 31.7.5.2 Class template basic_istream [[istream]](istream#cons) #### 31.7.5.2.2 Constructors [istream.cons] [🔗](#lib:basic_istream,constructor) `explicit basic_istream(basic_streambuf* sb); ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L4434) *Effects*: Initializes the base class subobject withbasic_ios​::​init(sb) ([[basic.ios.cons]](basic.ios.cons "31.5.4.2 Constructors"))[.](#1.sentence-1) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L4439) *Postconditions*: gcount() == 0[.](#2.sentence-1) [🔗](#lib:basic_istream,constructor_) `basic_istream(basic_istream&& rhs); ` [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L4451) *Effects*: Default constructs the base class, copies thegcount() from rhs, callsbasic_ios​::​move(rhs) to initialize the base class, and sets the gcount() for rhs to 0[.](#3.sentence-1) [🔗](#lib:basic_istream,destructor) `virtual ~basic_istream(); ` [4](#4) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L4465) *Remarks*: Does not perform any operations ofrdbuf()[.](#4.sentence-1)