stringof alias

Ali Çehreli acehreli at yahoo.com
Fri Jul 19 08:06:50 PDT 2013


On 07/19/2013 02:02 AM, JS wrote:

 > On Friday, 19 July 2013 at 08:08:27 UTC, John Colvin wrote:
 >> On Friday, 19 July 2013 at 08:02:45 UTC, JS wrote:
 >>> I have a template
 >>>
 >>> template T(alias t)
 >>> {
 >>>  pragma(msg, t.stringof);
 >>>  .... other stuff ...
 >>> }
 >>>
 >>> which I use in a class and pass fields/members to.

I read everything you wrote and came up with this:

template T(alias t)
{
     pragma(msg, t.stringof);
}

class C
{
     int i;

     void foo()
     {
         mixin T!i;
         mixin T!j;
     }
}

void main()
{
     auto c = new C();
}

 >>> D complains that t does not have a this.

Hm... It does not do that for me.

 > I guess it would be nice to assert a proper error if t doesn't exist
 > rather than the error it gave.

That is exactly what dmd does:

Error: undefined identifier j, did you mean variable i?

 > (I'm suppose to be passing it a field of
 > a class so it should exist)
 >
 > Is there any way to test for "existance" of an alias?

Probably. But I suspect your code is something different from what I 
understood.

Ali



More information about the Digitalmars-d-learn mailing list