checkedint call removal

via Digitalmars-d digitalmars-d at puremagic.com
Fri Aug 1 03:42:48 PDT 2014


On Friday, 1 August 2014 at 09:02:36 UTC, Walter Bright wrote:
> On 7/31/2014 11:24 PM, "Ola Fosheim Grøstad" 
> <ola.fosheim.grostad+dlang at gmail.com>" wrote:
>> On Friday, 1 August 2014 at 02:44:51 UTC, Walter Bright wrote:
>>>> That entry makes no mention of assert being used as an 
>>>> optimization hint.
>>>>
>>> Saying that a predicate is always true means it's available 
>>> to the optimizer.
>>
>> An assert does not say that the predicate is always true.
>
> Yes, it does. From Meyers' comprehensive tome on the topic 
> "Object-Oriented Software Construction" (1997) where he writes:
>
> "A run-time assertion violation is the manifestation of a bug 
> in the software."
>
>     -- pg. 346
>
> In fact, Meyers calls it "rule (1)" of assertions.

No, the statement in this quote does not imply that it is always 
true. It says that there is a bug if it isn't, which obviously 
wouldn't make any sense if the predicate were always true.

An assertion doesn't tell the compiler that a predicate is true, 
it tells the compiler to _check whether_ it is true.


More information about the Digitalmars-d mailing list