如何将函数指针编写为默认模板参数,我猜这样写:
template<typename R,
typename A,
typename F=R (*PF)(A)>
class FunctionPtr { ...
我的问题是,
1.可能吗?
2.如果是,我上面的猜测代码是正确的,PF
的目的是什么?我需要这个吗?
答案 0 :(得分:3)
不,你不需要PF。
template<typename R,
typename A,
typename F=R (*)(A)>
答案 1 :(得分:2)
PF
不仅无用,而且必须在此上下文中删除。例如,它在函数指针声明的上下文中是必要的:
int (*PF)(double) = &A::foo; // declares a 'PF' variable of type 'int (*)(double)'
但这里既不需要也不合法。
答案 2 :(得分:0)
我建议typedef
指向函数的指针。 typedef R (*PF)(A);
然后将PF
作为默认模板参数。