buffered input

Robert Jacques sandford at jhu.edu
Sun Feb 6 19:59:27 PST 2011


On Sun, 06 Feb 2011 21:47:48 -0500, Torarin <torarind at gmail.com> wrote:

> 2011/2/7 Robert Jacques <sandford at jhu.edu>:
>> On Sun, 06 Feb 2011 10:43:47 -0500, Andrei Alexandrescu
>> <SeeWebsiteForEmail at erdani.org> wrote:
>>
>>> On 2/6/11 6:01 EST, Tomek Sowiński wrote:
>>>>
>>>> Nick Sabalausky napisał:
>>>>
>>>>> discard and fetch?
>>>>
>>>> I like that.
>>>
>>> What's missing is the part that they refer to front. Maybe
>>> discardFromFront() and fetchToFront()? But then I like  
>>> discardFromFront()
>>> and appendToFront() better - the latter is about as long and more
>>> informative.
>>>
>>> Don't forget that these are relatively rarely used.
>>>
>>>
>>> Andrei
>>>
>>
>> Actually, I don't think these functions would be relatively rarely  
>> used. I
>> don't see that many people using a buffered input's popFront. Instead I  
>> see
>> shiftFront in its place and an appendToFront call has to be made  
>> whenever
>> buffer.front.empty.
>>
>
> Why not popFront if empty?

Because even reading UTF-8 requires more than 1-byte of information.  
Basically, any routine that processes a raw stream is going to have to  
handle the case where what they're processing straddles the buffer  
boundary. Now, if the routine wraps the raw stream in some higher-order  
range, such as byLine, which guarantees them that none of their inputs  
straddle, great. But it would be negligent to neglect those coders writing  
the higher-level ranges.


More information about the Digitalmars-d mailing list