... uhm, your test code is not quite right ... anyway, the following code



struct A
{
template<class X,class Y,class Z,short W> double f(X,Y *,Z &);
};

template <class T>