函数指针作为模板参数?

Ste*_*ven 3 c++

是否可以在不使用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?
}
Run Code Online (Sandbox Code Playgroud)

MSN*_*MSN 11

是:

STC<void (*)()> s(foo2, fp); // like this

它与获取typedef声明并删除typedef关键字和名称相同.