Being a C function, signal
can only take a plain function pointer, not arbitrary callable types. You'll need a non-member wrapper function, and a global variable to store this
, in order to call a member function from a signal handler.
static A * signal_object;
extern "C" void signal_handler(int signum) {signal_object->f(signum);}
// later...
signal_object = this;
signal(SIGSEGV, signal_handler);