http://d.puremagic.com/issues/show_bug.cgi?id=4114
Jonathan M Davis <jmdavisp...@gmx.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |jmdavisp...@gmx.com Resolution| |WONTFIX --- Comment #3 from Jonathan M Davis <jmdavisp...@gmx.com> 2011-08-14 17:42:00 PDT --- Slicing static arrays works. In some cases, there may be issues, but in most cases, it works. Most range-based functions don't alter the original range in manner which would be of any risk to static arrays. Predicates don't usually escape anything either. It would be a _highly_ abnormal predicate which did, and I'd be worried about any predicate which did. Predicates for std.algorithm functions are generally assumed not to have state which changes and usually won't work right if they do. The greatest risk is if you try and return a range from a range-based function which you passed a static array to. _That_ risks leaks, but the programmer is just going to have to be careful about that. There's no way to disallow the use of dynamic arrays which point to static arrays. Creating overloads for static arrays would result in needlessly copying them (since static arrays are value types), and would further clutter std.algorithm, increasing its maintenance cost. We're just not going to do anything which treats static arrays special in order to work with range-based functions. If you want to use a static array with a range-base function, then slice it and be sure that you don't let the resulting range escape the scope of the static array. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------