On 06.04.2009 13:30, 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
If you mean short-circuit evalutation, I'm pretty sure that's always
what the compiler does.