On 3/6/2018 1:58 AM, Jonathan M Davis wrote:

The entire point of making assert a core language feature was so that the compiler could take advantage of it to generate better code. It's been like that for D since day 1. It has always been documented to do that. It has been discussed many times in this n.g. over the years with loooong threads. I designed it that way so that D could potentially produce better code than other languages in ways they could not match.

There is no other purpose to making it a core language feature.

It's fine if you want an assert-like feature to have other semantics - just define one called 'check', give it the semantics you want, and put it in the library. As I mentioned to Timon, support for that sort of thing is why D has special support for __LINE__ and __FILE__.

Or just don't turn off assert checking. Personally, I use asserts in a way that they add little overhead so they can remain active in the release build.

It's entirely under your control.

Reply via email to