On 7/1/15 5:45 AM, "Marc =?UTF-8?B?U2Now7x0eiI=?= <schue...@gmx.net>" wrote:
On Tuesday, 30 June 2015 at 18:29:31 UTC, Steven Schveighoffer wrote:
I know this is just back-of-envelope, but what's wrong with:
alias Nullable(T) if(is(T == class)) = T;
bool isNull(T)(T t) if(is(T == class)) { return t is null;}
That's what I intended. (Same for pointers and slices, BTW.)
I does however have a slightly different behaviour: In the current
implementation, there can be instances for which `isNull` returns false,
but whose payloads are nevertheless `null`.
I just realized this. With a Nullable!(T[]), you can have a type where:
x is null
x == null
x.isNull
all have different behavior. I'm really quite unconvinced that this has
any good properties. I think we should fix it.
-Steve