status of D optimizers benefiting from contracts ?

Kagamin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Nov 11 06:50:09 PST 2014


On Monday, 10 November 2014 at 10:27:19 UTC, bearophile wrote:
> In practice I prefer to avoid using hacks like setting a 
> NDEBUG. It's better to have differently named operators if 
> their behavour is different. So it's better to keep the 
> assert() as it is commonly used (and I'd like it to refuse a 
> not pure expression). And add another operator, like 
> strong_assert() for the NDEBUG=strong behavour. (And if you 
> can't live with it, you can also add a strict_assert()). 
> Changing the behavour of asserts just changing a global 
> constant is silly because what matters is the semantics the 
> programmer gives to the assert he/she/shi is using. So giving 
> them different names is much better.

In my experience asserts don't show such distinction, and it's 
impractical to decide such things in advance. So I think, a 
compiler switch makes more sense.


More information about the Digitalmars-d-learn mailing list