1 // DR 1391 2 3 template <class T> struct Z { 4 typedef typename T::x xx; 5 }; 6 template <class T> typename Z<T>::xx f(void *, T); 7 template <class T> void f(int, T); 8 struct A {} a; main()9int main() { 10 f(1, a); // If the implementation rules out the first overload 11 // because of the invalid conversion from int to void*, 12 // the error instantiating Z<A> will be avoided 13 } 14