bearophile wrote:
Bill Baxter:

The first time I tried to use it my thought was to do
  typedef Exception MyException;
To create a different exception type.  That doesn't work so I kinda
just said, eh whatever, this typedef stuff doesn't work yet.

You are right, typedef was invented before classes and OOP, so what you say 
doesn't work :-)
But I think typedef may be modified to work as you want too, that is to define 
a subtype (so the runtime typeinfo of MyException too has to be different!). 
I/we can ask Walter what he thinks about this.


Now I can't accidentally assign a vertex handle to a face handle.
That could be useful.

Right. But so far I don't see problems in extending the semantics of typedef to 
work with OOP too. Maybe other people here can spot a problem. I presume Walter 
doesn't read this newsgroup, so I can post a summary in the main D group too, 
later.

Bye,
bearophile
Well, my use case just involves being able to use library function with the proper base type. (I.e., int instead of long or byte when I do
typedef int LocalType;
LocalType t;
File f;
f.write(t);

I'll grant that I *can* use alias for such a purpose, but that doesn't distinguish between LocalType and ArrayIndex in routines defined for those types. E.g.:
typedef  int ArrayIndex;
void zeroIndex(out ArrayIndex ai)  {    ai = 0;  }
zeroIndex(t);

Should throw an error.  If I'm using alias it doesn't (and shouldn't);

Reply via email to