On Sunday, 24 November 2013 at 14:18:50 UTC, ilya-stromberg wrote:
On Sunday, 24 November 2013 at 14:12:18 UTC, Maxim Fomin wrote:
void* ptr;
if(ptr)

was a shortcut for 'if(ptr != NULL)' probably since C was created.

Small code change:

import std.stdio;

class Foo
{
}

void main()
{
        Foo f;
        
        if(f == null)
        {
                writeln("f is true");
        }
        
        if(f != null)
        {
                writeln("f is false");
        }
}

DMD output:

Error: use 'is' instead of '==' when comparing with null
Error: use '!is' instead of '!=' when comparing with null

So, C style 'if(ptr != NULL)' isn't allowed in D.

Yes, because D is separate language, and its comparison operator does something special when operands are class references. This is not the same story as in 'if(f)' which is purely bitwise comparison.

I think your question is more appropriate for d.learn.

Reply via email to