No it doesn't. D is supposed to be systems programming language.
Unnecessary bounds checking would make array access too slow.
Mind you phobos should provide an array container which does that checking.
--
My enormous talent is exceeded only by my outrageous laziness.
http://www.ssTk.co.uk

No it doesn't. D is supposed to be systems programming language.
Unnecessary bounds checking would make array access too slow.

D has already array bounds, even to access single items. Array operations are
bulk, so they need only one bound test, then they perform many operations
without tests. So the bound time is often amortized, unless your arrays are
very small. Otherwise you disable the tests with -release or -noboundscheck. I
am rather sure Walter agrees about this.
Bye,
bearophile

Array bounds checking is done on code which is not compiled with the -
noboundscheck flag and which is either not built with -release or is safe.
I assume that you're not compiling with -noboundscheck (which turns off all
array bounds checking). So, you're likely compiling with -release on code
which isn't safe. system is the default, so unless you've marked your code
safe or you're not compiling with -release, I wouldn't expect there to be any
bounds checking. If you want to guarantee that there's always bounds checking,
then you need to mark your code safe and not use -noboundscheck. However,
given how little of Phobos is currently safe or trusted, odds are that
trying to mark your code safe will get _really_ annoying at this point. And
to fix that, we'd likely need conditional safe and conditional trusted for
the same reasons that we need conditional pure. And those haven't been taken
care of yet (there isn't even an official plan to as far as I know - though
hopefully there will be).
- Jonathan M Davis

Array bounds checking is done on code which is not compiled with the -
noboundscheck flag and which is either not built with -release or is safe.
I assume that you're not compiling with -noboundscheck (which turns off all
array bounds checking). So, you're likely compiling with -release on code
which isn't safe. system is the default, so unless you've marked your code
safe or you're not compiling with -release, I wouldn't expect there to be any
bounds checking. If you want to guarantee that there's always bounds checking,
then you need to mark your code safe and not use -noboundscheck. However,
given how little of Phobos is currently safe or trusted, odds are that
trying to mark your code safe will get _really_ annoying at this point. And
to fix that, we'd likely need conditional safe and conditional trusted for
the same reasons that we need conditional pure. And those haven't been taken
care of yet (there isn't even an official plan to as far as I know - though
hopefully there will be).
- Jonathan M Davis