以下内容转载自:
http://www.cppblog.com/zhaoyao91/archive/2011/03/31/143148.html
注意:第三种方法本人验证编译有问题。(windows+codeblocks,将class A内operator <<后面的"<T>"去掉后正常,声明非模板友元)
对类建立友元函数很容易。但是迁移到模板上却容易出现让人摸不着头脑的连接错误。
层次不够,不做分析,单纯介绍两种为类模板定义友元函数的方法
1 封闭型









2 开放型













3 告诉编译器声明的设个是模板





















建议:
如果希望使用函数与模板特化的类型相对应,则使用方法3(模板显示声明)
如果希望使用函数与模板特化的类型相独立,则使用方法2(二重模板)
简短的内联函数使用方法1