Parameterized aliases

monarch_dodra monarchdodra at gmail.com
Mon Aug 12 14:10:58 PDT 2013


On Monday, 12 August 2013 at 20:06:16 UTC, Piotr Szturmaj wrote:
> Hi D community!
>
> What do you think of such templated aliases:
>
> template SomeTemplate(T1, T2) { }
>
> alias Partial(T) = SomeTemplate!(int, T);
>
> alias Specialized = Partial!float; // equivalent to 
> SomeTemplate!(int, float)
>
> I think they could be pretty helpful and they should be 
> relatively easy to implement.

That's just been implemented actually. Try it on DMD head :)

I think they are actually called "template shorthand" or 
something, but yeah, it is basically parameterized aliases (also 
works with enums)

import std.typetuple;

alias Foo (U, T) = TypeTuple!(U, T);

alias FooInt(T) = Foo!(int, T);

void main()
{
     alias UT = FooInt!(uint);
}


More information about the Digitalmars-d mailing list