Nullable or Optional? Or something else?
Steven Schveighoffer
schveiguy at yahoo.com
Fri Sep 4 06:58:42 PDT 2009
On Thu, 03 Sep 2009 16:20:41 -0400, Rainer Deyke <rainerd at eldwood.com>
wrote:
> Steven Schveighoffer wrote:
>> I think Andrei is right here, for any type T that already is nullable
>> (including pointer and reference types), Optional!T should alias to T.
>
> Your conclusion is backwards here. In order for Optional!T to be
> useful, it must be able to hold all possible of T plus a distinct null
> value. If Optional!T cannot do that for T = Optional!T2, then
> Optional!T is useless in generic programming, bordering on useless in
> general. I think my example program demonstrated this amply.
I disagree, how many ways do you want to say something is unset? I think
one case -- is this thing null -- is plenty for 99% of cases. Your case,
well, I had trouble understanding it, but I think the nuance of how
something is unset is not usually important.
I think that what you will find with a solution that *does* allow this,
you will be sacrificing something else -- such as syntax clarity or a
member function.
If you have specific requirements for "is this set to nulla or nullb,"
then I think that's a more complicated problem to solve, one which
requires more complicated structures than what is being proposed here. I
don't think we should cater a feature like this to the one time somebody
needs 8 different names for snow...err null.
What I would *love* to see is a way to intercept these statements, and
handle them specially:
x is null;
x = null;
That doesn't fit your problem at all, since there is only one keyword
named null.
-Steve
More information about the Digitalmars-d
mailing list