Eliding of slice range checking

Per Nordlöw per.nordlow at gmail.com
Wed Oct 23 12:01:47 UTC 2019


On Wednesday, 23 October 2019 at 11:33:56 UTC, kinke wrote:
> For your example, the template is inferred to be @safe, and 
> `-release` only elides bounds checks in @system functions 
> (corresponding to `-boundscheck=safeonly`). Use 
> `-boundscheck=off` to elide it in all functions.

Thanks. But I'm talking about the compiler being able to figure 
out that the expression

     haystack[0 .. needle.length]

_never_ (regardless of compiler flags) needs any range checking 
because it is _only_ run when

     haystack.length >= needle.length

. Do you follow?


More information about the Digitalmars-d-learn mailing list