On Thursday, 24 January 2013 at 12:56:03 UTC, Matthew Caron wrote:
This is probably a question for Walter, but maybe others know.

Of all of the differences between C and D, the one which I have the most difficulty adapting to is null being lowercase. Does anyone know why this decision was made?

Keep in mind that strictly speeking, "NULL" != "null":

NULL is a C macro that expands to 0.
null is a D keyword that cannot be implicitly cast to an integer.

This is a source of bugs:

//----
void foo(int);
void foo(int*);
//----

in C++:
foo(NULL); //Calls "void foo(int)"

in D:
foo(null); //Calls "void foo(int*)"

Having code that is valid in both C++ and D, but having a different behavior would be VERY bad.

--------
BTW, you can be thankful that it is *just* "null", because what it really is C++11's "null_ptr". Which is worst.

Reply via email to