typedef basic_istream<_E, _Tr> _Myt; typedef basic_ios<_E, _Tr> _Myios; typedef istreambuf_iterator<_E, _Tr> _Iter; typedef num_get<_E, _Iter> _Nget; _Myt& _Myt::operator>>(short& _X) {ios_base::iostate _St = ios_base::goodbit; const sentry _Ok(*this); if (_Ok) {long _Y; const _Nget& _Fac = use_facet<_Nget>(ios_base::getloc()); try {_Fac.get(_Iter(_Myios::rdbuf()), _Iter(0), *this, _St, _Y); } catch (...) _Myios::setstate(ios_base::badbit, true); } if (_St & ios_base::failbit || _Y < SHRT_MIN || SHRT_MAX < _Y) _St |= ios_base::failbit; else _X = _Y; } _Myios::setstate(_St); return (*this); } //End of File