null references redux + Looney Tunes

Justin Johansson no at spam.com
Sun Oct 4 15:09:21 PDT 2009


bearophile Wrote:

> Justin Johansson Wrote:
> 
> > Bingo. I'm sure there would be a huge benefit to be able to distinguish string or any primitive type
> > in such manner without having to invent a Filename class, AbsolutePathName class etc.
> 
> Can D typedef be used for such purpose?
> 
> Bye,
> bearophile

Yes it can to a degree.  It is useful and a little type-safe smarter than its C counterpart going
by the few D tests that I've done on my journey into the language.
Drawback, as far as I can tell, is the lack of a constructor for typedef'ed values.  Seems like you
need to synthesise a typedef'ed value with a function that casts it to the typedef type
from a primitive type inside the function and return the casted result.
Otherwise, reminiscent of leaky fountain pens of yesteryear, you can blot casts all over your code.
I may be wrong; there may be a better way in D.

Doesn't C++ allow you to construct primitive values in syntax similar to a function call,
e.g. int(20);
Whether same works for typedef types in C++ I cannot recall just right now.

Ciao
Justin




More information about the Digitalmars-d mailing list