Bounds check

Meta via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri May 23 08:25:36 PDT 2014


On Friday, 23 May 2014 at 15:14:47 UTC, Chris wrote:
> The following:
>
> import std.stdio;
>
> void main() {
>   int[5] arg;
>   arg[10] = 3;              // Compiler says (of course): 
> Error: array index 10 is out of bounds arg[0 .. 5]
> }
>
> import std.stdio;
>
> void main() {
>   int[5] arg;
>   foreach (i; 0..10) {
>     arg[i] = i;
>   }
> }
>
> Compiler says nothing, but we get a runtime error 'Range 
> violation'.
>
> Bug or design?

It is design I believe, but it should be possible for the 
compiler to unroll this loop at compile time and detect the out 
of bounds access.


More information about the Digitalmars-d-learn mailing list