[#bsl-basic_syncbuf-underflow] = xref:bsl.adoc[bsl]::xref:bsl/basic_syncbuf.adoc[basic_syncbuf]::underflow :relfileprefix: ../../ :mrdocs: Fetches more data from the controlled sequence. == Synopsis Declared in `<bslstl_syncbuf.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual int_type underflow(); ---- == Description Informally, this function is called when the input buffer is exhausted (or does not exist, as buffering need not actually be done). If a buffer exists, it is _refilled._ In either case, the next available character is returned, or `traits::eof()` to indicate a null pending sequence. For a formal definition of the pending sequence, see a good text such as Langer & Kreft, or [27.5.2.4.3]/7‐14. A functioning input streambuf can be created by overriding only this function (no buffer area will be used). For an example, see https://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html [NOTE] ==== Base class version does nothing, returns eof(). ==== == Return Value The first character from the _pending sequence_. [.small]#Created with https://www.mrdocs.com[MrDocs]#