// ios -- ios basic members
#include <iostream>
int ios::_Index = 0;
ios::failure::~failure()
{ // destruct a failure
}
ios::~ios()
{ // destruct an ios -- DO (ALMOST) NOTHING
if (this != (ios *)&cin && this != (ios *)&cout
&& this != (ios *)&cerr && this != (ios *)&clog)
_Tidy();
}
void ios::clear(iostate ns)
{ // clear all but selected state bits
_State = ns & _Statmask;
if (_Sb == 0)
_State |= badbit;
if (_State & _Except)
failure("ios::failure", "ios::clear",
_State & badbit ? "badbit set"
: _State & failbit ? "failbit set"
: "eofbit set").raise();
}
void ios::init(streambuf *sb)
{ // initialize a new ios
_Sb = sb;
_Tiestr = 0;
_Except = goodbit;
_Fmtfl = skipws | dec;
_Prec = 6;
_Wide = 0;
_Fillch = ' ';
_Arr = 0;
clear(goodbit);
}
void ios::_Tidy()
{ // discard storage for an ios
_Iosarray *q1, *q2;
if (_Arr != 0 && 0 <= _Art->_Index)
{ // discard if not for standard stream
for (q1 = _Arr; q1 != 0; ql = q2)
q2 = q1->_Next, delete q1;
}
_Arr = 0;
}
// End of File