Null references redux

Walter Bright newshound1 at digitalmars.com
Sat Sep 26 16:01:48 PDT 2009


Denis Koroskin wrote:
> One more:
> 
> T foo(bool someCondition)
> {
>     T? t;
>     if (someCondition) t = someInitializer();
>     // ...
> 
>     if (t.isNull) { // not initialized yet
>         // ...
>     }
> 
>     return enforce(t); // throws if t is not initialized yet, because 
> foo *must* return a valid value by a contract
> }

It seems to me you've got null references there anyway?

What would you do about:

    T[] a;
    a[i] = foo();

where you want to have unused slots be null (or empty, or nothing)?



More information about the Digitalmars-d mailing list