Leandro Lucarella wrote:
Andrei Alexandrescu, el  2 de septiembre a las 14:39 me escribiste:
I plan to add a Nullable struct to Phobos (akin to C#'s Nullable, Boost's 
Optional).

Apparently a good design is to define Optional!T with a minimum of member functions (ideally none) and have it use the "alias this" feature to masquerade as a T. That way Optional!T looks and feels much like a T, except that it supports a function

bool isNull(T)(Optional!T value);

Am I on the right track? If so, what is the name you'd prefer for this artifact?

Maybe this is a very silly question, but what is exactly the difference
between Optional!T o/isNull(o) and T* o/o is null?

It's a good question. There are two differences: (a) Optional!T behaves almost like a T in expressions, and (b) Optional!T does not support most features of pointers, such as arithmetic and comparison.

Andrei

Reply via email to