Matrixのクラスライブラリを作りました。

template< typename X > class Matrix{
public:
Matrix<X>();
friend Matrix<X> operator*<X>( Matrix<X> const &, Matrix<X> const &);
};

gccではなんの問題もなくコンパイルできたのですがVS7.1だと
operator*<X>が気に入らないみたいです。どうやったらコンパイルできるんでしょう?