On Tuesday, 4 August 2015 at 02:37:00 UTC, Ola Fosheim Grøstad
wrote:
On Monday, 3 August 2015 at 15:18:12 UTC, Dicebot wrote:
On Monday, 3 August 2015 at 14:34:52 UTC, Steven Schveighoffer
wrote:
Why do we do this?
Because all asserts must be completely removed in -release
Yet assert(0) effectively mean "unreachable code" (it is
actually defined that way in spec) and thus it is possible to
ensure extra "free" bit of safety by crashing the app.
It isn't free. The point of having unreachable as primitive is
that you can remove all branching that leads to it.
"free compared to throwing exception" would be a better wording
indeed. I remember Iain complaining about presence of HLT (and
saying he won't do that for gdc) for exactly this reason.