I am new to C++ and I am having trouble with pointer functions to member functions. I am programming with PlatformIO on an ESP8266.
UdpTask.h
class UdpTask : public Task {
  public:
    void setup();
    void loop();
    UdpTask(String (*handleGson)(String));
  private:
    char replyPacket[];
    char incomingPacket[UDP_TX_PACKET_MAX_SIZE];
    unsigned int localUdpPort;
    WiFiUDP Udp;
    String (*handleGson)(String);
};
UdpTask.cpp
UdpTask::UdpTask(String(*handleGson)(String)) {
  this->handleGson = handleGson; 
}
GsonHandler.h
class GsonHandler {
  public:
    String handleGson(String gson);
}; 
GsonHandler.cpp
String GsonHandler::handleGson(String gson) {
  return ":)";
}
main.cpp
GsonHandler gsonHandler;
UdpTask udpTask(&gsonHandler.handleGson);
Error:
src\main.cpp:16:30: error: ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say '&GsonHandler::handleGson' [-fpermissive]
 UdpTask udpTask(&gsonHandler.handleGson);
                              ^
src\main.cpp:16:40: error: no matching function for call to 'UdpTask::UdpTask(String (GsonHandler::*)(String))'
 UdpTask udpTask(&gsonHandler.handleGson);
Note: I've tried the suggestions in the error message, but I can't find a way to get it to work..., furthermore, I know that in this simple example it can be solved much easier with for example just passing the whole object but I need this kind of pointers again where this way is easier.
Thanks in advance.
 
    