In C++ un puntatore a funzione può solo puntare o ad una funzione libera o ad un membro static (che all'atto pratico è sostanzialmente una funzione libera in un namespace particolare); non puoi passare dentro un puntatore a funzione un puntatore ad un metodo di istanza, dato che questo richiederebbe un puntatore a funzione più un puntatore all'istanza su cui dovrebbe operare, e le due cose ovviamente non ci stanno nello spazio destinato ad un solo puntatore a funzione.
Se controlli l'interfaccia del callback, da C++11 puoi specificare che vuoi ricevere un oggetto std::function, che, tramite type erasure, consente di portarsi dentro qualunque oggetto "chiamabile" (puntatore a funzione, funzione lambda, metodo d'istanza bindato ad un'istanza specifica, functore, ...). In alternativa, se si tratta di un callback fissato (ad esempio che dipende da una libreria C), normalmente oltre al callback è possibile specificare un dato di "contesto" (normalmente un void *) che viene passato come argomento del callback. In genere questo da lato C++ viene sfruttato per metterci dentro l'istanza su cui operare, per cui passerai come callback un metodo statico che fa il cast del "contesto" al tipo appropriato e ci richiama sopra il metodo che vuoi.

Rispondi quotando