The following code is illegal:
template<class T> class foo;
template foo<int>; // missing `class' keyword
Implicit And Explicit Template Functions