blob: d7b0a7c9f1c323523ed17908860cb784d3e13a38 [file] [log] [blame]
// PR c++/39413
// We don't need to instantiate Wrapper<int> to check the
// foo(const Thingy&) overload.
template <class T> struct Incomplete;
template <typename T> class Wrapper
{
Incomplete<T> i;
};
template <typename T> struct Thingy
{
Thingy();
Thingy(const Wrapper<T>& v);
template <typename X> void foo(const Thingy<X>&);
void foo(const Thingy&);
};
int main()
{
Thingy<int> ap1;
Thingy<float> bp1;
ap1.foo(bp1);
}