On Sun, 10 Jul 2011 22:30:34 +0200, Jonathan M Davis <jmdavisp...@gmx.com> wrote:

Well, if you can do it with alias this, then it's possible. If not, then it probably isn't. But I don't know what opImplicitCast would give you if alias
this doesn't (particularly if alias this is working properly; the current
implementation is buggy enough that whether it works now or not doesn't
necessarily mean much). I really don't know what would be required to get a TypeDef template working properly though. I don't really see any need for such
a beast personally, so I haven't really looked into it.

Basically, four types of typedef were outlined:

Supertype!T - You may pass T to a function requiring Supertype!T,
  and may assign a T to a Supertype!T, but not vice versa.

Subtype!T - You may pass a Subtype!T to a function requiring T,
  and may assign a Subtype!T to a T, but not vice versa.

Lateraltype!T - Behaves like a T in most ways, but cannot pass a T
  to a function expecting a Lateraltype!T, nor vice versa.

alias - Yeah, you know the one.

All of these have their uses, and currently only alias is in the
language.

--
  Simen

Reply via email to