xref: /llvm-project/clang/test/CXX/expr/expr.prim/expr.prim.id/expr.prim.id.qual/p3.cpp (revision fb615cf3b9c2d887441a4c0cca326eddc592351a)
1 // RUN: %clang_cc1 -verify %s
2 
3 template<typename T>
4 struct A {
5   void f();
6 };
7 
8 template<typename T>
9 using B = A<T>;
10 
11 template<typename T>
f()12 void B<T>::f() { } // expected-warning {{a declarative nested name specifier cannot name an alias template}}
13 
14 template<>
f()15 void B<int>::f() { } // ok, template argument list of simple-template-id doesn't involve template parameters
16 
17 namespace N {
18 
19   template<typename T>
20   struct D {
21     void f();
22   };
23 
24   template<typename T>
25   using E = D<T>;
26 }
27 
28 template<typename T>
f()29 void N::E<T>::f() { } // expected-warning {{a declarative nested name specifier cannot name an alias template}}
30