[ios.init]

# 31 Input/output library [[input.output]](./#input.output)

## 31.5 Iostreams base classes [[iostreams.base]](iostreams.base#ios.init)

### 31.5.2 Class ios_base [[ios.base]](ios.base#ios.init)

#### 31.5.2.2 Types [[ios.types]](ios.types#ios.init)

#### 31.5.2.2.6 Class ios_base​::​Init [ios.init]

[ð](#lib:ios_base::Init)

namespace std {class ios_base::Init {public: Init();
 Init(const Init&) = default; ~Init();
 Init& operator=(const Init&) = default; };}

[1](#1)

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

The class Init describes an object whose construction
ensures the construction of the eight objects declared in[<iostream>](iostream.syn#header:%3ciostream%3e "31.4.1 Header <iostream> synopsis [iostream.syn]") ([[iostream.objects]](iostream.objects "31.4 Standard iostream objects")) that associate file
stream buffers with the standard C streams
provided for by the functions declared in[<cstdio>](cstdio.syn#header:%3ccstdio%3e "31.13.1 Header <cstdio> synopsis [cstdio.syn]")[.](#1.sentence-1)

[ð](#lib:ios_base::Init,constructor)

`Init();
`

[2](#2)

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

*Effects*: Constructs and initializes the objects cin, cout, cerr,clog, wcin, wcout, wcerr, and wclog if
they have not already been constructed and initialized[.](#2.sentence-1)

[ð](#lib:ios_base::Init,destructor)

`~Init();
`

[3](#3)

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

*Effects*: If there are no other instances of the class still in existence,
callscout.flush(),cerr.flush(),clog.flush(),wcout.flush(),wcerr.flush(),wclog.flush()[.](#3.sentence-1)
