checkedint call removal
via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jul 28 07:20:41 PDT 2014
On Monday, 28 July 2014 at 13:50:29 UTC, Daniel Murphy wrote:
> Yes, writing code wrong can result in the wrong thing
> happening. A non-release build will always retain the asserts.
No, writing wrong code is one thing.
Having a single typo in a constraint-test cause memory unsafety
undetected is a disaster. And many such typos _will_ go
undetected.
Let's say you want to test "divisor >= 0", but end up with
"divisor != 0" => division_by_zero failure even if the code is
correct.
Adding assert() should increase quality, not decrease it. Adding
asserts will increase the probability of wrong constraints
entering the codebase. That means with the regime indicated here
you should write as few assert() statements as possible.
>> Assert() are useful debugging tools, but not a codegen
>> feature. A good debugger could allow you to turn them on/off
>> or let you continue after hitting one. That's useful.
>
> If this is what you want you shouldn't be using assert. This
> is not what assert means in D.
Where in the spec does it say that assert is a tool for
specifying optimization constraints?
That would be a disaster.
More information about the Digitalmars-d
mailing list