Forstår ikke input buffer eksempel

Tags:    c++

Hej udvikleren.dk

Jeg har sidder i 2 dage og læst på flere eksempler i en C++ bog som jeg bruger til at lave min egen streambuffer med, men jeg har et eksempel jeg ikke forstår. Eksemplet findes her,
http://www.josuttis.com/libbook/io/inbuf1.hpp.html

Det jeg ikke forstår er
Fold kodeboks ind/udKode 


Hvor kontrolleres der efter dette? Jeg troede at det blev overladt til sgetc!? Så hvorfor overhovedet tjekke efter dette når der allerede er blevet gjort en gang (se, http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/streambuf-source.html - kig efter implementeringen af sgetc())

Det jeg heller ikke lige er helt med på er den sidste return
Fold kodeboks ind/udKode 


og hvorfor den bliver lavet om til en int_type. Er det for at tjekke om den er EOF?

Håber nogen derude kan give mig et svar, så ville jeg blive glad.



t