No bounds checking for dynamic arrays at compile time?

Mehrdad wfunction at hotmail.com
Wed Dec 12 20:26:49 PST 2012


On Thursday, 13 December 2012 at 04:11:10 UTC, Pacoup wrote:
> I've been newly exploring D for a very short while now, and, 
> exploring Array functionality, I came upon this funny bit of 
> code off of a badly written tutorial.
>
> import std.stdio;
>
> void main()
> {
>    int[] intArray;
> 	
>    intArray[0] = 42;
>    intArray[1] = 54;
>    intArray[2] = 91;
>
>    writefln("The length of intArray is %d.", intArray.length);
> }
>
> This compiles, believe it or not, and doesn't throw any errors 
> or warnings whatsoever, but obviously for people who know D, 
> this will throw a core.exception.RangeError: Range violation 
> when run.
>
> Why?

It's C++ philosophy imposed on the C#-like aspects of the 
language.


More information about the Digitalmars-d mailing list