我想为以模板为参数的方法签名创建函数指针
Template<class T>
typedef int (*computeSizeFunc)(T data);
我尝试过,这是错误
error: template declaration of 'typedef'
typedef int (*computeSizeFunc)(T data).
这是我要为其编写函数指针的方法签名
template<class T>
int getSize (T data)
答案 0 :(得分:10)
您应该改用C ++ 11 type-alias声明:
template<class T>
using computeSizeFunc = int (*)(T data);
答案 1 :(得分:2)
typedef
不允许使用template
,您应该使用using
:
template<class T>
using computeSizeFunc = int (T data);
答案 2 :(得分:1)
作为C ++ 11之前版本替代其他方法的方法,您可以使用以下解决方法:
template< class Arg >
struct computeSizeFunc {
typedef int (*funcImpl)(Arg data);
};