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