[ios.base.cons]

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

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

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

#### 31.5.2.8 Constructors and destructor [ios.base.cons]

[ð](#lib:ios_base,constructor)

`ios_base();
`

[1](#1)

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

*Effects*: Eachios_base member has an indeterminate value after construction[.](#1.sentence-1)

The object's members shall be initialized by callingbasic_ios​::​init before the object's first use or before it is destroyed, whichever comes first; otherwise
the behavior is undefined[.](#1.sentence-2)

[ð](#lib:ios_base,destructor)

`~ios_base();
`

[2](#2)

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

*Effects*: Calls each registered callback pair(fn, idx) ([[ios.base.callback]](ios.base.callback "31.5.2.7 Callbacks")) as(*fn)(​erase_event, *this, idx) at such time that anyios_base member function called from withinfn has well-defined results[.](#2.sentence-1)

Then, any memory obtained is deallocated[.](#2.sentence-2)
