?
Wenn ich das richtig verstehe, meint er, dass eof() nicht nur ein Flag prüfen soll, sondern nachkucken, ob aus dem Stream noch etwas gelesen werden kann.
MFK hat im Grunde schon genannt, warum das eine alberne Idee ist. Wenn du an einer FIFO hängst, wird es schon schwierig, dafür eine sinnvolle Semantik zu definieren. Hängst du gar an einem benutzerdefinierten Stream, der seine Daten aus einer Berechnung zieht, kann es schnell völlig unmöglich werden.
Es macht aus meiner Sicht keinen Sinn, von einem Eingabestrom zu verlangen, dass er vor einem Leseversuch zu wissen habe, ob dieser funktionieren werde, zumal historisch unter iostreams liegende Betriebssystemsschnittstellen ein solches Verhalten nicht bieten. Man würde sich damit die Nutzung des Konzepts für solche Fälle versperren, in denen das nicht möglich oder nicht sinnvoll ist, ohne einen angemessenen Nutzen aus der Einschränkung zu ziehen.
Ich verstehe auch nicht, was der Aufruhr soll. Der übliche Anwendungsfall ist eh "Lies so lange Daten, wie du kannst" - die gesetzten Flags lassen sich später immer noch prüfen - und wenn man tatsächlich nur auf das eof-Bit prüfen will, schreibt man halt
while(getline(stream, str).eof()) {
// ...
}
...wobei man sich dann natürlich um die Behandlung anderer Fehlerflags in der Schleife selbst kümmern muss.