operator<< で使用するフレンド関数を持つ Matrix クラスがあります。これはすべて正常に動作しますが、Matrix クラスがそのテンプレート パラメーターとして Matrix を持っている場合 (つまり、クラスのインスタンスが Matrix< Matrix< char > > のように宣言されている場合) に異なる動作をするように、そのフレンド関数を部分的に特化したいと考えています。クラス定義で最初に持っていた
template <typename U>
friend std::ostream& operator<<(std::ostream& output, const Matrix<U>& other);
そして追加してみました
friend std::ostream& operator<<(std::ostream& output, const Matrix<Matrix<char> >& other);
しかし、これにより、コンパイラから複数の宣言エラーが発生しました。これを達成する方法がわかりません。