このコードが、VC7.1で問題なく動くのですが、いいのでしょうか?

//Primary Class
template <typename T>
class C
{
  T value ;
public :
  C(T const &val) : value(val) {}
  void print(void) { std::cout << "Generic value : " << value << std::endl ; }
} ;


//C<int>::print()だけを特殊化、ただし、わざとtemplate<>をコメントアウト

//template <>
void C<int>::print() { std::cout << "Specialized value : " << value << std::endl ; }

main()
{
  C<int> c(100) ;
  c.print() ;//問題なし
}

C++ Templatesという本によると、
メンバの特殊化にも、template<>プレフィクスをつけなければならないと書かれているのですが。