November 19, 2003 typedef and alias | ||||
---|---|---|---|---|
| ||||
Can a different word be used instead of "typedef" for D's typedef? I think it is asking for confusion when "alias" is equivalent to C's typedef (though I support one can alias more things than just types, right?) and D makes "typedef" mean something else. Since I speak C/C++ much more often than D I have the word "typedef" hard-wired in my brain to mean what it has always meant. I think it would be easier on us C programmers to either make typedef mean C's typedef or change the name to not conflict with C's typedef. -Ben |
November 19, 2003 Re: typedef and alias | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ben Hinkle | Ben Hinkle wrote:
> Can a different word be used instead of "typedef" for D's typedef? I think
> it is asking for confusion when "alias" is equivalent to C's typedef (though
> I support one can alias more things than just types, right?) and D makes
> "typedef" mean something else. Since I speak C/C++ much more often than D I
> have the word "typedef" hard-wired in my brain to mean what it has always
> meant.
> I think it would be easier on us C programmers to either make typedef mean
> C's typedef or change the name to not conflict with C's typedef.
Playing devil's advocate here: Why have both typedef and alias at all?
Simplify.
Have one word to mean you are making a new type, even if the scope of the
type would be for one class/module.
If you have it as an "alias", it is sufficiently different from C/C++ to
make it known it operates differently.
The alias would be a new type, but the compiler will create automatic conversion
(aka casting) for the original type.
For instance:
alias Rectangle<float> Rect;
would mean that we can do the following:
Rect myRect = (Rect) new Rectangle<float>();
or
Rectangle<float> outsideRect = (Rectangle<float>) new Rect();
That way the types can still be used interchangably, but treated as a strong
type. Do we really need both a typedef and an alias? I think it is overkill.
|
Copyright © 1999-2021 by the D Language Foundation