+ -
当前位置:首页 → 问答吧 → 模板函数指针

模板函数指针

时间:2011-12-14

来源:互联网

有如下模板函数
template<class T> void target(T t)
{
}
我如何定义一个指向这个函数的指针?或者根本就不可能?

作者: yusss   发布时间: 2011-12-14

template<class T> 
  void target(T t)
{
  cout<< t << endl;
}

int main()
{
void (*fun)(int t_a);
 fun = target<int>;
fun(10);
cin.get();
}

作者: lanneret1234   发布时间: 2011-12-14

模板函数是没有地址的,只有当它被使用时才会预编译出实际的函数

但是可以通过类来定义一个模板函数指针

C/C++ code
 
template <typename T>
class TFuncPoint
{
public:
typedef void (*fun_ptr)(T);
fun_ptr Fp1;
};

void f(int i)
{
std::cout < < "f\n";
}

template <typename T>
void f1(T t)
{
std::cout < < "f1\n";
}

class TestTFuncPoint
{
public:
void test()
{
TFuncPoint <int> a;
a.Fp1 = ::f;
a.Fp1(0);
a.Fp1 = ::f1 <int>;
a.Fp1(0);
}
};


作者: jstar920   发布时间: 2011-12-14