|
|
1
4
最简单的可能是让所有这些模板操作员成为朋友:
|
|
|
2
1
我能做到的最接近的是
它声明所有运算符<<为友元,而不是仅由t参数化的运算符。问题在于,不可能部分专用化函数。有人想用
但这不是有效的语法。(好吧,部分专业化不能宣布为朋友) |
|
|
3
1
它不应该在类外定义吗?
|
|
|
4
0
问题是,在您提供的代码中,friend是一个模板化函数,仅在第一个参数类型上参数化。也就是说,对于类模板的每个实例化类型t(调用它
重要的是
如果您真的想声明一个友元函数,该函数在流类型和
另一方面,我建议您不要参数化
|
|
|
5
0
对于每个实例化的类型t的类测试,将公开模板函数运算符<<(),该运算符可以在不同类型的流上操作。运算符<<()函数有一个自由的第一个参数,但有一个固定的第二个参数。 例子:
这就是测试课的工作方式。 |