template canBeAlias(T...)
if (T.length == 1)
{
static if (is(typeof({alias _ = T[0];})))
{
enum canBeAlias = true;
}
else
{
enum canBeAlias = false;
}
}pragma(msg, canBeAlias!canBeAlias); //prints "true" static assert(!canBeAlias!true); //passes static assert(canBeAlias!(canBeAlias!canBeAlias)); //passes?!What is going on here? `canBeAlias!canBeAlias` evaluates down to true, so why is `canBeAlias!true` false when `canBeAlias!(canBeAlias!canBeAlias)` is true?
