[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<charT, traits>* 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<charT, traits>​::​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)
