On 2013-04-29, 18:02, Idan Arye wrote:

On Monday, 29 April 2013 at 15:39:47 UTC, Simen Kjaeraas wrote:
On 2013-04-29, 17:34, Idan Arye wrote:

On Monday, 29 April 2013 at 12:23:04 UTC, deadalnix wrote:
On Sunday, 28 April 2013 at 16:33:19 UTC, Idan Arye wrote:
When you use `std.typecons.Nullable` with a type that already accept `null` values, you get two types of nulls - the `Nullable`'s null state the the regular type's `null`:

  Nullable!string a;
  writeln(a.isNull()); //prints "true"
  a = null;
  writeln(a.isNull()); //prints "false"
  a.nullify();
  writeln(a.isNull()); //prints "true"


All types should be non nullable. Problem solved.

*All* types? Even object references and pointers?

That would be nice, yes.

And what would they be initialized to? When you write:
     Object obj;
what will `obj` refer to?

It won't. That would be a compile-time error:
'Variable obj needs an initializer'.

We have some of this already in @disable this(). However, a true
non-nullable reference is, I believe, not possible in D today.

--
Simen

Reply via email to