How to alias for identity

Timon Gehr timon.gehr at gmx.ch
Wed Oct 26 13:18:29 PDT 2011


On 10/26/2011 09:41 PM, Martin Nowak wrote:
> I was using some templates to declare different parameters sets.
>
> template unitA() {...}
> template unitB() {...}
> template unitC() {...}
>
> I have a generic function that is parameterized by these units.
> void foo(alias unit) {...}
>
> Now unitA gets a specialization.
>
> void foo(alias unit:unitA!()) {}
>
> But here I'm a little stuck because this won't work in my case due to a
> bug (there are more parameters).
> http://d.puremagic.com/issues/show_bug.cgi?id=6701
>
> Does anybody know of a way to test an alias for identity.
>
> void foo(alias unit) if(unit == unitA!()) {} // won't work of course
>
> martin

This will do the job:

void foo(alias unit)() if(unit.mangleof == unitA!().mangleof) {}


More information about the Digitalmars-d mailing list