On Monday, August 20, 2012 11:45:23 monarch_dodra wrote: > On Monday, 20 August 2012 at 09:10:47 UTC, Jonathan M Davis wrote: > > On Monday, August 20, 2012 10:43:43 monarch_dodra wrote: > >> There is a way to prevent bounds checking of array accesses > >> when > >> compiling. I was wondering if there was a way to have a user > >> defined range apply the same scheme? I'd suppose using a > >> "version"? I'm not very fluent with this yet... > > > > I believe that your only options are assert, debug blocks, and > > version blocks. > > There's no way for code to no whether -noboundscheck is used > > just like there's > > no way for code to know whether -release is used. > > > > - Jonathan M Davis > > For my personal education, what is the rationale behind not being > able to write: > "version(noboundscheck)" > or > "version(release)" > ? > > Is it purposefully done to force the implementer to provide his > own version "word" and "switch"?
I'm not sure that it was ever even considered that the programmer might want to do something special with them. assert is affected by -release, and - noboundscheck was added later for extra control. They had nothing to do with the programmer doing anything in their code. I have no idea how Walter would feel about adding noboundscheck and/or release versions which correspond to the flags. But since it's generally bad practice to make code differ between non-release mode and release mode, and assert already gives you the ability to have checks that which are around in non-release but not in release, I don't know that it really buys you much to add such version identifiers. - Jonathan M Davis
