On Sunday, 19 May 2013 at 18:23:22 UTC, Walter Bright wrote:
On 5/19/2013 5:02 AM, Simen Kjaeraas wrote:
By definition? Pointer semantics are what we choose it to mean.
Of course. But which definition is saner:

For many types, it is extremely useful to have some sort of "invalid" value for it. null fills that role nicely for pointers, just as nan does for floating point types, and 0xFF does for UTF-8.


I don't wanted to bring that up because I thought it would confuse people, but yes, 0xFF for char is the exact same problem and I argue in the same direction : require explicit initialization.

There's not anything insane about it. The Nullable type constructor even exists in order to provide such an invalid state for types (like int) which normally do not have one.


If something can be null, you MUST do something to handle specifically the null case. D completely fail to ensure that.

void buzz(Foo f) {
f.foo(); // Rely in faith. It is invalid and way easier to write than the valid code, which is THE recipe for it to spread.
}

Reply via email to