Nullable or Optional? Or something else?
Rainer Deyke
rainerd at eldwood.com
Wed Sep 2 23:36:12 PDT 2009
Andrei Alexandrescu wrote:
> Rainer Deyke wrote:
>> You need some syntactic way to distinguish the contained value from the
>> container. Using "alias this" seems messy here. Optional!Optional!T is
>> both valid and likely to occur.
>
> Interesting. I wonder whether it's better to fold Optional!(Optional!T)
> into Optional!T.
That would be semantically incorrect. Optional!T must be able to hold
all possible values of T, plus a distinct null value.
Consider:
Optional!int upper_limit;
Optional!(Optional!int) config_limit = config_file.get("upper_limit");
if (isNull(config_limit)) {
upper_limit = default_upper_limit;
} else {
upper_limit = config_limit; // Could be null.
}
Then consider that this could be in a template function, with
Optional!int supplied as a template argument.
--
Rainer Deyke - rainerd at eldwood.com
More information about the Digitalmars-d
mailing list