1 2 3 4 5 6 7 8 9 10 11 12
// Build don't link: template <class A> struct X { A operator[] (int); }; template <class A> A X<A>::operator[] (int i) { return A(); // gets bogus error } X<int> x;