是否可以在不使用 typedef 的情况下将函数指针作为模板参数传递?
template<class PF>
class STC {
PF old;
PF& ptr;
public:
STC(PF pf, PF& p)
: old(*p), ptr(p)
{
p = pf;
}
~STC() {
ptr = old;
}
};
void foo() {}
void foo2() {}
int main() {
void (*fp)() = foo;
typedef void (*vfpv)();
STC<vfpv> s(foo2, fp); // possible to write this line without using the typedef?
}
最佳答案
是的:STC<
void (*)()
> s(foo2, fp); // like this
这与采用 typedef
声明并删除 typedef
关键字和名称相同。
关于c++ - 函数指针作为模板参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1198044/