我有一个 Matrix 类,它有一个与 operator<< 一起使用的友元函数。这一切都很好,但是如果 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);
但这给了我来自编译器的多个声明错误。我似乎无法弄清楚如何做到这一点。