【发布时间】:2011-05-07 10:53:47
【问题描述】:
如何在模板类中重载插入 (>) 运算符而不使其内联。我希望将 > 运算符作为朋友类。 我知道如何使它内联 矩阵类中的内联示例
friend ostream& operator<<(ostream& ostr, const Matrix<T>& inputMatrix)
{
...
// create the ostr
return ostr;
}
但我希望将代码放在模板类定义之外。
g++ 告诉我在函数名之后添加 ,所以我这样做了,但是当我尝试实例化 SOMETYPE 类型的矩阵时,它给了我一个错误,它不知道如何为该类型提取或插入。
【问题讨论】:
-
你应该阅读parashift.com/c++-faq-lite/templates.html#faq-35.16。顺便说一句,作为模板函数,无论如何它都会隐式内联。
-
下次,请使用编辑窗格顶部的
101010按钮来格式化您消息中的代码。在编辑窗格右侧的“如何编辑”浮动窗口中解释了这一点以及更多内容。
标签: c++ templates operator-overloading inline insertion