用代码说话:
template<class T, void(T::*F)() >
class callback {
public:
callback(T &t):object(t){};
void execute(){(object.*F)();};
private:
T &object;
};class A {
public:
void func();
};int main() {
A a;
callback <A, &A::func> c(a);
c.execute();
}
template<class T, void(T::*F)() >
class callback {
public:
callback(T &t):object(t){};
void execute(){(object.*F)();};
private:
T &object;
};class A {
public:
void func();
};int main() {
A a;
callback <A, &A::func> c(a);
c.execute();
}