typeof alias in templates

Don nospam at nospam.com.au
Tue Jul 22 06:21:12 PDT 2008


bearophile wrote:
> In a template I need both the name and type of a given variable, but I have found a problem that can be shown with this simple code:
> 
> template Bar(string name) {
>     pragma(msg, name);
> }
> template Foo(alias A) {
>     alias Bar!(A.stringof) Foo;
> }
> void main() {
>     int x = 10;
>     alias Foo!(x) Nothing;
> }
> 
> I'd like this code to print "x" instead of "int". Is this a bug of DMD V.1.033?
> 
> (At the moment I have solved the problem giving the template the name of the variable, and then finding its type with typeof(mixin("name")), but it's a less elegant solution).
> 
> Bye,
> bearophile

A bug. Workaround:

template Foo(alias A) {
     alias Bar!(A.stringof ~ "") Foo;
}


More information about the Digitalmars-d-learn mailing list