首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

定义指向模板函数的函数指针类型,该如何解决

2012-04-24 
定义指向模板函数的函数指针类型C/C++ codetemplate typename PktTypetypedef int (* CallbackFunPtrTyp

定义指向模板函数的函数指针类型



C/C++ code
template <typename PktType>typedef int (* CallbackFunPtrType) (const PktType& CurPkt);//1,提示编译错误template <typename PktType>int (* CallbackFunPtr1) (const PktType& CurPkt);//2,提示编译错误



现在需要定义一个指向模板函数的函数指针类型,查了相关资料得知现在c++好像不支持这个特性。

vs2008发现,不但不能用typedef定义指向模板函数的函数指针类型,1处所示;连定义一个指向模板函数的函数指针都不可以,2处所示。
有没有其他巧妙的方法可以实现?求赐教!



[解决办法]
c++11 14/1 says
A template defines a family of classes or functions or an alias for a family of types.
因此,不存在 function pointer template.
另外,你的概念似乎有些混淆。c++ 标准中不存在模板函数的概念,因此也不存在"模板函数的函数指针"。c++ 中只有函数模板,注意函数模板是一个模板,不是函数,因此也不存在指向它的指针。
你还是说说到底要干嘛吧,说不定不用这么麻烦呢。
[解决办法]
一个简单的原因就是,模板在实例化之前就不存在,所以你这个所谓的模板函数的指针在类型未确定之前根本就没意义。
[解决办法]
我只是想说,,模板在实例化之前是存在的..

只不过不是类型.所以 typedef 不行.指针不行..
[解决办法]
template <typename PktType>
struct Wrapper
{
typedef int (* CallbackFunPtrType) (const PktType& CurPkt);
};
这样不就行了
用的时候就
Wrapper<int>::CallbackFunPtrType callback=....

热点排行