digitalmars.D - Re: Null references redux
- Jason House <jason.james.house gmail.com> Sep 26 2009
Walter Bright Wrote: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)?
Your example segfaults. A is null. If T is const or immutable, special care is also required.
Sep 26 2009