downs wrote:
> Qian Xu wrote:
>> Hi All,
>>
>> Is minimal evaluation always enabled in D?
>>
>> I want to write a function IsNull(), so that I can check the precondition as
>> follows:
>>
>>   if (isNull(foo) ||
>>       isNull(foo.getBar) ||
>>       isNull(foo.getBar.getBar2)
>>   {
>>     return false;
>>   }
>>   // normal code goes here
>>
>> If an argument is null, the IsNull() will return false. Internally it will
>> be logged to console as well.
>>
>> But I am not sure, if dmd-compiler generates code without minimal evaluation
>> in some cases. If minimal evaluation is not always enabled. I cannot do
>> precodition check in my way. 
>>
>> --Qian
> 
> Short-circuit evaluation is always enabled.
> 
> http://digitalmars.com/d/1.0/expression.html#OrOrExpression
> 
> "If the left operand, converted to type bool, evaluates to true, then the 
> right operand is not evaluated."

You beat me to it, AND you found it in the spec.

?cookie downs

  -- Daniel

Reply via email to