// ()<(X)>()<X>(X)
struct foo {
template<int i> int operator()(){return i;}
};
int main(){
const int X = 1;
foo f;
if (f.operator()<(X)>()<X>(X))
return 0;
}
Ly8gKCk8KFgpPigpPFg+KFgpCgpzdHJ1Y3QgZm9vIHsgCiAgICB0ZW1wbGF0ZTxpbnQgaT4gaW50IG9wZXJhdG9yKCkoKXtyZXR1cm4gaTt9Cn07CgppbnQgbWFpbigpewogICAgY29uc3QgaW50IFggPSAxOwogICAgZm9vIGY7CiAgICBpZiAoZi5vcGVyYXRvcigpPChYKT4oKTxYPihYKSkKICAgICByZXR1cm4gMDsKfQ==