模板类重载<<运算符
写了一个Matrix模板类,需要重载<<,
1、需要友元函数
2、需要此函数的实现在.h中(本人试验出来的,放在.cpp中编译不通过)
template <typename T>
struct Matrix {
T mat[16];
template<typename T> friend std::ofstream &operator<< (std::ofstream &out, const Matrix<T> &c);
};
template<typename T>
std::ofstream &operator<< (std::ofstream &out, const Matrix<T> &c)
{
for(int i=0; i<16;i++)
out<<std::fixed<<std::setprecision(6)<<c.mat[i]<<(i==15?"":";");
return out;
}