IOFile provides the same interface of old BufferedFile. It provides extension points as pure virtual functions. Those functions are implemented by 2 concrete subclasses: BufferedFile and GZipFile.
In BufferedFile, removed feof from operator unspecified_bool_type. EOF can be queried separately using newly added eof().