1template <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 10template <class data> const int foo<data>::a = 1; 11template <class data> const int foo<data>::b = a; 12template <class data> const int foo<data>::c = b; 13template <class data> const int foo<data>::d = c; 14 15typedef foo<int> fooInt; 16 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