[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<charT, traits>* sb);
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L5842)

*Effects*: Initializes the base class subobjects withbasic_istream<charT, traits>(sb) ([[istream]](istream "31.7.5.2 Class template basic_­istream"))
and[basic_ostream<charT, traits>(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)
