Lines Matching refs:T
4 template <class T>
7 …void f(T a) { }// expected-note 2{{must qualify identifier to find this declaration in dependent b… in f()
11 template <class T>
12 class B : public A<T> {
14 void z(T a) in z()
31 template<class T> void f(T) { in f()
57 template<class T> class A {
63 template<class T>
64 class B : public A<T> {
79 template <class T>
87 template <class T>
88 class B : public A<T> {
103 template<class T>
110 template<class T>
111 class B : public A<T> {
129 template <class T>
135 template <class T>
136 class A : public B<T> {
138 friend void foo(A<T> p){ in foo()
159 template <class T>
160 class A : public T {
176 template <class T>
180 operator T*() const { return 0; } in operator T*()
183 template <class T>
184 class Container : public Base<T> {
206 template <typename T> struct B : T {
209 int baz() { return T::a; } in baz()
210 int T::*qux() { return &T::a; } in qux()
211 static int T::*stuff() { return &T::a; } in stuff()
212 static int stuff1() { return T::sa; } in stuff1()
213 static int *stuff2() { return &T::sa; } in stuff2()
218 template <typename T> struct C : T {
221 int baz() { return T::b; } // expected-error {{no member named 'b' in 'PR16014::A'}} in baz()
222 int T::*qux() { return &T::b; } // expected-error {{no member named 'b' in 'PR16014::A'}} in qux()
223 int T::*fuz() { return &U::a; } // expected-error {{use of undeclared identifier 'U'}} \ in fuz()
230 template <typename T> struct D : T {
244 template <class T>
245 struct A : T {
268 template <typename T> struct Base { int y = 42; };
269 template <typename T> struct Derived : Base<T> {
282 template <typename T> struct A { typedef T NameFromBase; };
283 template <typename T> struct B : A<T> {
290 template <typename T> struct A { struct NameFromBase {}; };
291 template <typename T> struct B : A<T> {
298 template <typename T> struct A { enum NameFromBase { X }; };
299 template <typename T> struct B : A<T> {
306 template <typename T> struct A { typedef T NameFromBase; }; // expected-note {{member found by ambi…
307 template <typename T> struct B { struct NameFromBase { T m; }; }; // expected-note {{member found b…
308 template <typename T> struct C : A<T>, B<T> {
315 template <typename T> struct A { typedef T NameFromBase; };
316 template <typename T> struct B { static const T NameFromBase = 42; };
317 template <typename T> struct C : A<T>, B<T> {
323 template <typename T> struct A { struct NameFromBase {}; };
324 template <typename T> struct B : A<T> {
332 template <typename T> struct A { void NameFromBase() {} }; in NameFromBase()
334 template <typename T> struct C : A<T> {
341 template <typename T> struct A {
344 template <typename T> struct B : A<T> {
346 typename B::template NameFromBase<T> m;
348 template <typename T> struct C : A<T> {
350 NameFromBase<T> m; // expected-error {{unknown type name 'NameFromBase'}}
356 template <typename T>
358 struct B { typedef T NameFromBase; };
360 template <typename T>
361 struct C : A<T>::B { NameFromBase m; }; // expected-error {{unknown type name 'NameFromBase'}}
365 template <typename T>
369 template <typename T>
370 struct C : A<T>::template B<T> {
376 template <typename T>
380 template <typename T>
381 struct B : A<T> { NameFromBase m; }; // expected-error {{unknown type name 'NameFromBase'}}
387 template <typename T>
389 template <typename T>
390 struct C : B<T> { NameFromBase m; }; // expected-warning {{use of identifier 'NameFromBase' found v…
394 template <typename T>
396 template<typename T>
397 struct B { typedef T NameFromBase; };
398 template <typename T>
399 struct D : A<T>, B<T> { NameFromBase m; }; // expected-warning {{use of identifier 'NameFromBase' f…
405 template<typename T>
407 template <typename T>
408 struct D : C<T> { NameFromBase m; }; // expected-warning {{use of identifier 'NameFromBase' found v…
412 template <typename T>
413 struct A { typedef T NameFromBase; };
414 template <typename T>
415 struct B : virtual A<T> {};
416 template <typename T>
417 struct C : B<T>, virtual A<T> { NameFromBase m; }; // expected-warning {{use of identifier 'NameFro…
422 template <typename T>
423 struct A { typedef T NameFromBase; };
424 template <typename T>
425 struct B : public A<T> {};
426 template <typename T>
427 struct C : B<T>, public A<T> { NameFromBase m; }; // expected-warning {{use of identifier 'NameFrom…
432 template<typename T> struct A { typedef int NameFromBase; };
433 template<typename T> struct B : A<T> {
443 template<typename T> struct B<T>::C : B {
446 template<typename T> struct F : B<T>::C {
452 template <typename T> struct A { typedef T NameFromBase; };
453 template <typename T>
454 struct B : A<T> {
504 template <typename T> int f() { return sizeof(T); } in f()
507 template <typename T>
508 struct A { typedef T NameFromBase; };
509 template <typename T>
510 struct B : A<T> {
516 template <typename T> struct C { enum { NameFromBase = 4 }; };
517 template <typename T> struct D : C<T> {
524 template<class T>
532 template <template <typename T> class A>
538 template <typename T>
541 template <typename T>
542 using D = C<T>;
544 template <typename T>
545 struct E : D<T>
556 template <typename T> struct Template : T {
569 template <typename T> decltype(g(T())) check(); // expected-note{{candidate template ignored: subst…
573 template <typename T> decltype(h(T())) check2(); // expected-note{{candidate template ignored: subs…
580 template <typename T>
581 struct UseUnqualifiedTypeNames : T {
593 template <typename T>
594 void UseUnqualifiedTypeNames<T>::out_of_line() { in out_of_line()
612 template <class T, class X = Bar>
621 template <class T>
622 class FooTemplated<T, Spare> {};
625 template <class T>
626 class FooTemplated<T, Bar> : public FooBase {};
629 template <class T, class X>
630 class FooTemplated : public FooTemplated<T, Bar> {