1 template<class T> 2 struct X0 { 3 T getValue(T arg); 4 }; 5 6 template<int I> 7 struct X1; 8 9 template<long I> 10 struct X2; 11 12 template<typename> 13 struct X3; 14 15 template<template<int I> class> 16 struct X4; 17 18 template<template<int I> class> 19 struct X5; 20 21 template<template<int I> class> 22 struct X6; 23 24 typedef int Integer; 25 extern X0<Integer> *x0i; 26 extern X0<float> *x0f; 27 extern X0<double> *x0r; 28 29 template<> 30 struct X0<char> { 31 int member; 32 }; 33 34 template<> 35 struct X0<wchar_t> { 36 float member; 37 }; 38