need clarification: will typedef, C struct initialization, etc.

Simen kjaeraas simen.kjaras at gmail.com
Mon May 31 20:07:21 PDT 2010


Lionello Lunesu <lio at lunesu.remove.com> wrote:

> I also miss typedef. I thought D had a great opportunity to fix it.
>
> Take something like the Windows headers. It mostly consists of typedefs
> for handles and whatnot. Without typedef you'd have to use alias and
> type safety is out of the windows.
>
> So what would be the way to translate those Windows headers? Create a
> unique struct for each old typedef? With alias this, and a ctor? Well,
> if that's the way to do it now, why not make typedef a shortcut for
> exactly that!?
>
> IIRC typedef is gone because you and Walter could not agree whether it
> had to be a subtype or a supertype of the typedef'ed type. For me it's
> rather simple: I want to introduce a new type in such a way that it
> helps me prevent mistakes, ie. passing one handle when the function
> wants another, even though both are based on void*, or whatever.
>
> Bring typedef back!

struct Typedef( T ) {
     T payload;
     alias payload this;
}

alias Typedef!int myInt;

There you go.

-- 
Simen


More information about the Digitalmars-d mailing list