G++声明模板友元函数

出自Linux Wiki

在2008年2月1日 (五) 08:10由Chenxing (讨论 | 贡献)所做的修订版本

本文主要讨论利用类型参数,把模板函数声明为对应模板类的友员函数的问题。

下面是一个例子,注意:

  1. 在使用friend前加入了对func的声明
  2. 在声明friend时,func后有<>
  3. 此段代码不能在VC6中编译通过。
#include<iostream>
using namespace std;
 
template < class T > void func (T arg);
 
template < class T >
class CTemp{
    friend void func<> (T arg);
    private:
        T element;
    public:
        CTemp (T arg):element(arg){ }
};
 
template < class T >
void func (T arg){
    CTemp < T > a (arg);
    int i;
    cout << a.element << endl;
    return;
}
 
int main(){
    func (5);
    return 0;
}
个人工具
简体繁体转换