How can I use a member function of instantiate class as a function pointer ?
BEFORE :
main.cpp :
void packetShower(data_t const& data) {
// showing so data
}
....
// called with :
std::shared_ptr<Net::ARawSocket> rawSock = std::make_shared<Net::LinuxRawSocket>(packetShower);
and It simply works.
The packetShower
function was a simple static method into my main.cpp
NOW :
I have a instantiate class Instance
with a packetShower
instance function
namespace App {
class Instance {
public:
Instance() = default;
~Instance() = default;
int run(int ac, char *av[]);
private:
void init();
void packetShower(data_t const& data)
};
}
and, in my run()
method, I try to create a function pointer to my packetShower
function :
namespace App {
void Instance::init() {
...
}
void Instance::packetShower(data_t const& data) {
.....
}
int Instance::run(int argc, char** argv) {
init();
// and I tried :
void (Instance::*shower)(data_t const& data) = &Instance::packetShower;
std::shared_ptr<Net::ARawSocket> rawSock = std::make_shared<Net::LinuxRawSocket>(shower);
// but It generate a big error
}
}
Any idea how I can do this ?
Thanks !