I'm following up on an earlier question, however my question pertains to type issues.
How do I assign a pointer to member function C::f()
to the m
pointer?
Does the member function need to be static?
#include <iostream>
using namespace std;
struct nullpt_t {
template<class T>
inline operator T*() const { return 0; }
template<class C, class T>
inline operator T C::*() const { return 0; }
};
nullpt_t nullpt;
struct C {
void f() {cout << "here" << endl;}
};
int main(void)
{
int *ptr = nullpt;
void (C::*m)() = nullpt;
// now assign m with member function f()?
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…