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

Reply via email to