Home | History | Annotate | Download | only in Parser

Lines Matching refs:typename

14 template <template <typename> > struct Err2;       // expected-error {{expected 'class' before '>'}} \
16 template <template <typename> Foo> struct Err3; // expected-error {{expected 'class' before 'Foo'}} \
20 template <typename T> void foo();
21 template <typename T, typename U> void foo();
24 template <typename T> void foo() { }
27 template <typename T> struct A;
28 template <typename T, typename U> struct b;
29 template <typename> struct C;
30 template <typename, typename> struct D;
33 template <typename T = int> class X1;
34 template <typename = int> class X2;
37 template <template <typename> class T> class TTP1;
38 template <template <typename> class> class TTP2;
39 template <template <typename> class T = foo> class TTP3; // expected-error{{must be a class template}}
40 template <template <typename> class = foo> class TTP3; // expected-error{{must be a class template}}
41 template <template <typename X, typename Y> class T> class TTP5;
51 template <typename T, T Obj> class NTP7;
54 template <typename T> struct A { };
55 template <typename T, typename U> struct B { };
58 template<typename T, // expected-note{{template parameter is declared here}}
59 typename T> // expected-error{{declaration of 'T' shadows template parameter}}
62 template<typename T> // expected-note{{template parameter is declared here}}
65 template<typename T> // expected-note{{template parameter is declared here}}
73 template<typename T> // expected-note{{here}}
78 template<typename T> // expected-note{{here}}
90 template<typename T>
104 template <typename T>
105 void bar(typename T::x);
108 template <typename T>
109 void N::bar(typename T::x) { }