On Tue, 23 Nov 2010 00:10:40 -0500 Jesse Phillips <jessekphillip...@gmail.com> wrote:
> Rainer Deyke Wrote: > > > On 11/22/2010 11:55, Andrei Alexandrescu wrote: > > > http://d.puremagic.com/issues/show_bug.cgi?id=5257 > > > > I think this bug is a symptom of a larger issue. The range abstraction > > is too fragile. If even you can't use the range abstraction correctly > > (in the library that defines this abstraction no less), how can you > > expect anyone else to do so? > > Note that this issue with foreach has been discussed before. The suggested > solution was to have infer dchar instead of char (shot down since iterating > char is useful and it is simple to add the type dchar). Maybe a range > interface (as found in std.string) should take precedence over arrays in > foreach? Or maybe foreach should only work with ranges and opApply (that > would mean std.array would need imported to use foreach with arrays)? > > That wouldn't address your exact issue. I tend to agree with Andrei as you > should be coding to the Range interface which will prevent any miss use of > char/wchar. On the other hand, why can't I have a range of char (I mean get > one from an array, not that I would ever want to)? > > Anyway, I agree char[] is a special case, but I also agree it isn't an issue. This issue may also be interpreted as one more sign that text types in general are special enough to require a distinct (set of) type(s). Which would not prevent freely using *char[] as a plain array (even if I personly cannot imagine what for). Denis -- -- -- -- -- -- -- vit esse estrany ☣ spir.wikidot.com