1 template <class data> class foo 2 { 3 public: 4 static const int a; 5 static const int b; 6 static const int c; 7 static const int d; 8 }; 9 10 template <class data> const int foo<data>::a = 1; 11 template <class data> const int foo<data>::b = a; 12 template <class data> const int foo<data>::c = b; 13 template <class data> const int foo<data>::d = c; 14 15 typedef foo<int> fooInt; 16 main(void)17int main( void ) 18 { 19 fooInt *f; 20 21 f = new fooInt(); 22 23 if (f->c != 1 || f->d != 1) 24 return 1; 25 } 26