template
class Pair{
private:
T1 key;
T2 value;
public:
template
friend ostream & operator << ( ostream & os, const Pair &r );
};
这个友元函数定义写在外面就完全没有问题,如果定义写在里面的话,如果在main函数里定义 Pair< string,int >没问题,再写Pair< double,int >就会报错,似乎是redefinition等等,请问这是什么原因呢