Proposal for SentinelInputRange

Timon Gehr timon.gehr at gmx.ch
Wed Feb 27 17:14:31 PST 2013


On 02/28/2013 02:11 AM, Walter Bright wrote:
> A SentinelInputRange is an InputRange with the following additions:
>
> 1. a compile time property 'sentinel' that is the terminating value of
> the range
> 2. empty is defined as: empty = (front == sentinel)
> 3. it is not necessary for empty to be called before front
>
> A C style 0-terminated string is an example of a SentinelInputRange.
>
> The additions to std.range would be:
>
> 1. isSentinelInputRange(T) which returns true if T is a SentinelInputRange
> 2. a unittest
> 3. documentation of this
>
> An addition to std.string would be a function that takes a char* and
> returns a SentinelInputRange.
>
> Motivation:
> 1. easy conversion of C strings to ranges
> 2. necessary for a fast implementation of a lexer
>
> Any takers?


This is not general enough. The concept is not exclusive to input ranges.


More information about the Digitalmars-d mailing list