Relaxing the definition of isSomeString and isNarrowString

monarch_dodra via Digitalmars-d digitalmars-d at puremagic.com
Mon Aug 25 13:39:19 PDT 2014


On Sunday, 24 August 2014 at 01:06:31 UTC, Andrei Alexandrescu 
wrote:
> Currently char[], wchar[], dchar[] and qualified variants 
> fulfill the requirements of isSomeString. Also, char[], wchar[] 
> and qualified variants fulfill the requirements of 
> isNarrowString.
>
> Various algorithms in Phobos test for these traits to optimize 
> away UTF decoding where unnecessary.
>
> I'm thinking of relaxing the definitions to all types that 
> fulfill the following requirements:
>
> * are random access ranges
> * element type is some character
> * offer .ptr as a @system property that offers a pointer to the 
> first character
>
> This would allow us to generalize the notion of string and 
> offer optimizations for user-defined, not only built-in, 
> strings. Thoughts?
>
>
> Andrei

One issue is that strings are "auto decoded", yet a range of 
"char" is not. I don't see why ".ptr" is needed (or .length) for 
that matter. We could very well have a range of chars that 
doesn't of length, nor .ptr, but should still be handled like a 
sequence of decoded characters.

I don't see how your proposal caters to that more generic problem 
that a UD char range is not auto-decoded (or more generally, that 
it will be handled *differently* from a string).


More information about the Digitalmars-d mailing list