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