2 // We don't need to instantiate Wrapper<int> to check the
3 // foo(const Thingy&) overload.
5 template <class T> struct Incomplete;
7 template <typename T> class Wrapper
12 template <typename T> struct Thingy
15 Thingy(const Wrapper<T>& v);
17 template <typename X> void foo(const Thingy<X>&);
18 void foo(const Thingy&);