protected:
virtual int_type underflow()
Reads the next character from the get area of the buffer.
Specifically:
1) If the input sequence has a read position available (egptr() > gptr()), returns Traits::to_int_type(*gptr())
2) Otherwise, if pptr() > egptr() (some characters were inserted into the stream since the last time overflow() changed egptr()) then extends the end of the get area to include the most recently inserted characters, by changing egptr() to equal pptr(), and t