Lines Matching full:template
17 // -- function template
19 template<typename T> void f0(T) { // expected-note{{here}}
23 template<> void f0(NonDefaultConstructible) { }
29 template<> void f0(int);
30 template<> void f0(long);
33 template<> void N0::f0(int) { } // okay
36 template<> void N0::f0(long) { } // expected-error{{does not enclose namespace}}
39 template<> void N0::f0(double); // expected-warning{{C++11 extension}}
40 template<> void N0::f0(double) { }
43 template<typename T> void f(T);
45 template<> void f(int); // expected-error{{in class scope}}
48 // -- class template
51 template<typename T>
61 template<typename U>
65 template<typename U>
71 template<typename T>
72 template<typename U>
77 template<typename T> T N0::X0<T>::member;
79 template<> struct N0::X0<void> { }; // expected-warning{{C++11 extension}}
83 template<> struct N0::X0<const void> { }; // expected-error{{not in a namespace enclosing 'N0'}}
87 template<> struct X0<volatile void>;
90 template<> struct N0::X0<volatile void> {
94 // -- member function of a class template
95 template<> void N0::X0<void*>::f1(void *) { } // expected-warning{{member function specialization}}
102 template<> void X0<volatile void>::f1(void *) { } // expected-error{{no function template matches}}
104 template<> void X0<const volatile void*>::f1(const volatile void*);
111 // -- static data member of a class template
114 template<>
117 template<> long X0<long>::member = 17;
119 template<> float X0<float>::member;
121 template<> double X0<double>::member;
128 template<> int N0::X0<int>::member; // expected-warning{{C++11 extension}}
130 template<> float N0::X0<float>::member = 3.14f;
133 template<> double N0::X0<double>::member = 3.14; // expected-error{{does not enclose namespace}}
136 // -- member class of a class template
139 template<>
142 template<>
145 template<>
148 template<>
151 template<>
155 template<>
158 template<>
162 template<>
165 template<>
175 // -- member class template of a class template
177 template<>
178 template<>
181 template<> template<>
184 template<> template<>
187 template<> template<>
191 template<> template<>
194 template<> template<>
195 struct N0::X0<int>::InnerTemplate<float> { }; // expected-warning{{class template specialization}}
198 template<> template<>
207 // -- member function template of a class template
209 template<>
210 template<>
213 template<> template<>
216 template<> template<>
219 template<> template<>
223 template<> template<>
226 template<> template<>
227 void N0::X0<void*>::ft1(void *, float) { } // expected-warning{{function template specialization}}
230 template<> template<>
243 template<typename Z>
245 template <class T, class U> class Inner;
247 template<typename T, typename U> void f(Inner<T, U>&);
250 template<> void f(MyInner&); // expected-error{{cannot specialize a function 'f' within class scope}}