// P0634R3 // { dg-do compile { target c++2a } } namespace N { // template extern T::type v; // #1a template T::type v(typename T::value); // #1b } template T::type N::v(T::value); // #2 namespace N2 { template extern T::type v; // #1a //template T::type v(typename T::value); // #1b } template T::type N2::v(T::value); namespace A { inline namespace B { template int f(typename T::foo); } inline namespace C { template extern int f; } } template int A::f(T::foo); // { dg-error "ambiguous" }