Home | History | Annotate | Download | only in drs

Lines Matching full:template

50   template<typename T> struct A {};
51 template<typename T> void f(T) { A<T> a; } // expected-note {{implicit instantiation}}
52 template void f(int);
53 template<> struct A<int> {}; // expected-error {{explicit specialization of 'dr3::A<int>' after instantiation}}
108 template<typename, int, void (A::*)()> struct T;
137 template<typename T> struct A : T {
141 template<typename T> struct B : T {
165 template<typename T> struct A {
168 template<typename T> int h(void (T));
198 template<typename T> void f(int); // expected-note {{previous}}
199 template<typename T> void f(int = 0); // expected-error {{default arguments cannot be added}}
256 template<typename T> struct A;
258 template<typename T = int> friend struct A; // expected-error {{default template argument not permitted on a friend template}}
259 template<typename T = int> friend struct B; // expected-error {{default template argument not permitted on a friend template}}
264 template<typename dr22_T = dr22_T> struct X; // expected-error {{unknown type name 'dr22_T'}}
266 template<typename T = T> struct Y;
270 template<typename T> void f(T, T); // expected-note {{candidate}}
271 template<typename T> void f(T, int); // expected-note {{candidate}}
359 template<int> static int f();
361 int x = A::template f<0>();
362 int y = a.template f<0>();
363 int z = p->template f<0>();
366 // expected-error@-5 {{'template' keyword outside of a template}}
367 // expected-error@-5 {{'template' keyword outside of a template}}
368 // expected-error@-5 {{'template' keyword outside of a template}}
388 template<typename Z> Z g(Y::T);
397 template<typename T> struct X {};
398 template<typename T> X<T> operator+(X<T> a, X<T> b) { return a; }
399 template X<int> operator+<int>(X<int>, X<int>);
478 template<int> void f();
479 template<> void f<0>(); // expected-error {{explicit specialization of 'f' in class scope}}
492 template<typename> struct A { template<typename> struct B {}; };
493 template template struct A<int>::B<int>; // expected-error {{expected unqualified-id}}
497 template<typename T> struct A {
524 template<int*> struct A {}; // expected-note 0-2{{here}}
645 template<typename T> struct convert_to { operator T() const; };
698 template<typename T> struct X {};
699 template<typename T> T get() { return get<T>(); }
700 template<typename T> int take(T) { return 0; }
750 template<typename T> struct S { typename T::error e; };
756 template<class T> void f(T);
757 template<class T> void f(T*);
758 template<> void f(int*);
759 template<> void f<int>(int*);
760 template<> void f(int);
783 template<typename T> struct X {};
785 struct ::dr68::template X<int> x2;
787 // expected-error@-2 {{'template' keyword outside of a template}}
792 friend struct ::dr68::template X<double>;
794 // expected-error@-2 {{'template' keyword outside of a template}}
797 template<typename>
799 friend struct ::dr68::template X<double>;
808 template<typename T> static void f() {}
812 extern template void f<char>();
816 template<void(*)()> struct Q {};
824 template<int> struct A {};
825 template<int I, int J> int f(int (&)[I + J], A<I>, A<J>);
935 template <typename T>
945 template<typename T> struct X {};
953 template<typename T> struct S {
957 template<> const int S<int>::a = 4; // expected-error {{already has an initializer}}
958 template<> const int S<int>::b = 4;
965 template<typename T> friend void dr90_f(T);
968 template<typename T> friend void dr90_g(T);
1012 // the template parameter, which does not include the exception specification.
1013 template<void() throw()> struct X {};
1042 template<typename T> int f(T);
1043 template<typename T> struct S {};
1045 template<template<typename> class X> struct B {};
1047 template<typename T>
1049 int k1 = a.template f<int>(0);
1050 // FIXME: This is ill-formed, because 'f' is not a template-id and does not
1051 // name a class template.
1053 int k2 = a.template f(1);
1054 A::template S<int> s;
1055 B<A::template S> b;
1087 template<typename T> void f(T&);
1088 template<typename T> int &f(const T&);