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