On Friday, 18 May 2018 at 23:58:18 UTC, Uknown wrote:
On Friday, 18 May 2018 at 23:53:12 UTC, IntegratedDimensions wrote:
Why does D complain when using == to compare with null? Is there really any technical reason? if one just defines == null to is null then there should be no problem. It seems like a pedantic move by who ever implemented it and I'm hoping there is actually a good technical reason for it.

D only complains of this when you use ref types (classes or AAs). For e.g:
--- test.d
void main()
{
    int * p;
    assert (p == null && p is null);
    class C
    {
        int x;
    }
    C c;
    assert (c is null);
assert (c == null); //error, c is a reference, so there is confusion between opEquals and null check
}
---


or pointers.
  • is == IntegratedDimensions via Digitalmars-d-learn
    • Re: is == Uknown via Digitalmars-d-learn
      • Re: is == IntegratedDimensions via Digitalmars-d-learn
    • Re: is == Neia Neutuladh via Digitalmars-d-learn
      • Re: is == Jonathan M Davis via Digitalmars-d-learn
      • Re: is == Neia Neutuladh via Digitalmars-d-learn
        • Re: is == Jonathan M Davis via Digitalmars-d-learn
        • Re: is == Neia Neutuladh via Digitalmars-d-learn
          • Re: is == Jonathan M Davis via Digitalmars-d-learn
      • Re: is == Steven Schveighoffer via Digitalmars-d-learn
        • Re: is == Jonathan M Davis via Digitalmars-d-learn
        • Re: is == Steven Schveighoffer via Digitalmars-d-learn
          • Re: is == Jonathan M Davis via Digitalmars-d-learn

Reply via email to