| template <class data> class foo | |
| { | |
| public: | |
| static const int a; | |
| static const int b; | |
| static const int c; | |
| static const int d; | |
| }; | |
| template <class data> const int foo<data>::a = 1; | |
| template <class data> const int foo<data>::b = a; | |
| template <class data> const int foo<data>::c = b; | |
| template <class data> const int foo<data>::d = c; | |
| typedef foo<int> fooInt; | |
| int main( void ) | |
| { | |
| fooInt *f; | |
| f = new fooInt(); | |
| if (f->c != 1 || f->d != 1) | |
| return 1; | |
| } |