Daniel Keep:
> You do realise that "Template Parameters" are a completely different
> thing to "is expressions", right?

Nope. And from the other answers by Moritz and Ellery it seems I am not alone 
:-)
You are right, this works:


template IsPointer1(T:T*) {
    enum bool IsPointer1 = true;
}
template IsPointer1(T) {
    enum bool IsPointer1 = false;
}
void main() {
    static assert(IsPointer1!(int*));
    static assert(!IsPointer1!(int));
    static assert(!IsPointer1!(int[]));
}


This syntax looks too much similar to the syntax with is():
template IsPointer1(T:T*) {
It's a syntax collision. You realize that I will not be the only one to fall in 
this little trap.

Bye and thank you,
bearophile

Reply via email to