VLERange: a range in between BidirectionalRange and RandomAccessRange
Michel Fortin
michel.fortin at michelf.com
Sun Jan 16 04:51:44 PST 2011
On 2011-01-16 02:11:14 -0500, foobar <foo at bar.com> said:
> I Understand your concern regarding a simpler implementation. You want
> to minimize the disruption caused by the proposed change.
>
> I'd argue that creating a specialized string type as Steve suggests
> makes integration *easier*. Your suggestion requires that foreach will
> be changed to default to grapheme. I agree that this can be done
> because it will not break silently but with Steve's string type this is
> unnecessary since the type itself would provide a grapheme range
> interface and the compiler doesn't need to know about this type at all.
> string becomes a regular library type.
>
> Of course, the type should support:
> string foo = "bar";
> by making an implicit conversion from current arrays (to minimize
> compiler changes)
It should also work for:
auto foo = "bar";
> The only disruption as far as I can tell would be using 'a' type
> literals instead of "a" but that will come up in compilation after
> string defaults to the new type.
You say "after string defaults to the new type", but I don't think this
change to the language will pass. It'll break TDPL for one thing, so
it's surely out for D2. And I somewhat doubt it's low-level enough for
Walter's taste.
I don't care much if the default type is an array or not, I just want
the default type to work properly as a Unicode string. The very small
participation to this thread from the key decision makers (Andrei and
Walter) worries me however. I'm not even sure we'll achieve that goal.
--
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/
More information about the Digitalmars-d
mailing list