// PR c++/39413 // We don't need to instantiate Wrapper to check the // foo(const Thingy&) overload. template struct Incomplete; template class Wrapper { Incomplete i; }; template struct Thingy { Thingy(); Thingy(const Wrapper& v); template void foo(const Thingy&); void foo(const Thingy&); }; int main() { Thingy ap1; Thingy bp1; ap1.foo(bp1); }