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