Which bit of the spec for template instantiation is it that allows the 
last two lines of the following to compile and work?

import std.stdio;


struct A
{
    int a;
}

template Thingie(T)
{
    static if (is(T == int))
        enum Thingie = 1;
    else
        enum Thingie = 0;
}

void main()
{
    writefln("%d", Thingie!(int));
    writefln("%d", Thingie!int);
    writefln("%d", Thingie!A);
}

Reply via email to