On 05/31/2010 10:07 PM, Simen kjaeraas wrote:
Lionello Lunesu <l...@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.

Yah, perfect - that would be the subtype. I think we should work on adding a pseudo-supertype as well, and also on a completely independent type. Then we can add these abstractions to std.typecons.

Andrei

Reply via email to