streambuf::int_type streambuf::_M_snextc_underflow() { if (__M_gnext == __M_gend) { return (uflow() == EOF) ? EOF : sgetc(); } else { __M_gnext = __M_gend; return underflow(); } }
virtual std::streamsize xsgetn(char_type* p, std::streamsize count) { std::streamsize copied = 0; while (count > 0) { int_type c = uflow(); if (c == char_traits::eof()) break; *p++ = char_traits::to_char_type(c); ++copied; --count; } return copied; }
int streambuf::sbumpc() { #if defined(OS_INCLUDE_STREAMBUF_BUFFERS) if (mgbeg == 0) return traits::eof(); if (mgnext == mgend) { return uflow(); } int retval = traits::to_int(*gptr()); gbump(1); return retval; #else return traits::eof(); #endif }