Andreas Raab a écrit :
I'm not insisting on *anything*. I'm making up an example where a reasonable person could come up with arguments either way and where -as time goes by- the arguments may way out differently. This had absolutely nothing to do with actual Stream>>next behavior; it had everything to do with the fact that there are good reasons for making it go either way. And no, I have absolutely no interest in discussing this issue and will stay out of any further discussion about what the "right" stream behavior is.
Cheers,
- Andreas
Seems like I missed the interesting point.
What would be the single inheritance scheme? Provide some kind of pluggable behaviour with additional inst vars like an objectToReturnWhenAtEndOfStream or a blockToExecuteWhenAtEndOfStream?
Your proposing to override when the logic would be to fragment in more traits.
It seems appealing to construct a custom stream from traits composition: Readable , AnswerNilAtEndOFStream , CanStepOneObjectBack (Peekable). But I agree that the price seems high (leads to greater fragmentation of code with distributed constraints, or in other words less encapsulation and more interfaces).
Nicolas