basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::get(_CharT& __c) { sentry __sentry(*this, _No_Skip_WS()); this->_M_gcount = 0; if (__sentry) { typename _Traits::int_type __tmp = _Traits::eof(); _STLP_TRY { __tmp = this->rdbuf()->sbumpc(); } _STLP_CATCH_ALL { this->_M_handle_exception(ios_base::badbit); } if (!this->_S_eof(__tmp)) { this->_M_gcount = 1; __c = _Traits::to_char_type(__tmp); } } if (this->_M_gcount == 0) this->setstate(ios_base::eofbit | ios_base::failbit); return *this; }
basic_istream<_CharT, _Traits>& _STLP_CALL ws(basic_istream<_CharT, _Traits>& __is) { typedef typename basic_istream<_CharT, _Traits>::sentry _Sentry; _Sentry __sentry(__is, _No_Skip_WS()); // Don't skip whitespace. if (__sentry) __is._M_skip_whitespace(false); return __is; }
__BIS_int_type__ basic_istream<_CharT, _Traits>::peek() { typename _Traits::int_type __tmp = _Traits::eof(); this->_M_gcount = 0; sentry __sentry(*this, _No_Skip_WS()); if (__sentry) { _STLP_TRY { __tmp = this->rdbuf()->sgetc(); } _STLP_CATCH_ALL { this->_M_handle_exception(ios_base::badbit); } if (this->_S_eof(__tmp)) this->setstate(ios_base::eofbit); } return __tmp; }
basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::putback(_CharT __c) { this->_M_gcount = 0; sentry __sentry(*this, _No_Skip_WS()); if (__sentry) { typename _Traits::int_type __tmp = _Traits::eof(); basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); // if (!__buf || this->_S_eof(__buf->sputbackc(__c))) if (__buf) { _STLP_TRY { __tmp = __buf->sputbackc(__c); } _STLP_CATCH_ALL { this->_M_handle_exception(ios_base::badbit); } } if (this->_S_eof(__tmp)) this->setstate(ios_base::badbit); } else this->setstate(ios_base::failbit);
basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::ignore() { sentry __sentry(*this, _No_Skip_WS()); this->_M_gcount = 0; if (__sentry) { int_type __c; _STLP_TRY { __c = this->rdbuf()->sbumpc(); } _STLP_CATCH_ALL { this->_M_handle_exception(ios_base::badbit); return *this; } if (!this->_S_eof(__c)) this->_M_gcount = 1; else this->setstate(ios_base::eofbit); } return *this; }