xref: /aosp_15_r20/external/clang/test/PCH/cxx-ms-function-specialization-class-scope.h (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li 
2*67e74705SXin Li 
3*67e74705SXin Li 
4*67e74705SXin Li template <class T>
5*67e74705SXin Li class B {
6*67e74705SXin Li public:
7*67e74705SXin Li 	template <class U>
B(U p)8*67e74705SXin Li     B(U p) {
9*67e74705SXin Li 	}
10*67e74705SXin Li 	template <>
B(int p)11*67e74705SXin Li     B(int p) { // expected-warning{{explicit specialization of 'B<T>' within class scope is a Microsoft extension}}
12*67e74705SXin Li 	}
13*67e74705SXin Li 
14*67e74705SXin Li 	template <class U>
f(U p)15*67e74705SXin Li     void f(U p) {
16*67e74705SXin Li 	  T y = 9;
17*67e74705SXin Li 	}
18*67e74705SXin Li 
19*67e74705SXin Li 
20*67e74705SXin Li     template <>
f(int p)21*67e74705SXin Li     void f(int p) { // expected-warning{{explicit specialization of 'f' within class scope is a Microsoft extension}}
22*67e74705SXin Li 	  T a = 3;
23*67e74705SXin Li 	}
24*67e74705SXin Li 
f(int p)25*67e74705SXin Li 	void f(int p) {
26*67e74705SXin Li  	  T a = 3;
27*67e74705SXin Li     }
28*67e74705SXin Li };
29*67e74705SXin Li 
30