Nullable with reference types
Steven Schveighoffer via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Jul 1 05:43:59 PDT 2015
On 7/1/15 5:45 AM, "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm at 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
More information about the Digitalmars-d-learn
mailing list