namespace NS {
    struct C {};
    void foo();
}
template <class T> struct X {};
template <class T> struct A {
    A() { foo (X<T>()); }
    void foo(X<T>);
};
template struct A<NS::C>;
namespace NS {
    struct C {};
    void foo();
}
template <class T> struct X {};
template <class T> struct A {
    A() { foo (X<T>()); }
    void foo(X<T>);
};
template struct A<NS::C>;