minimal evaluation
downs
default_357-line at yahoo.de
Mon Apr 6 04:44:51 PDT 2009
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."
More information about the Digitalmars-d
mailing list