vendredi 19 avril 2019

How to pass argument to std::bind to a function?

I have the following code which used std::bind :

 EventListenerCustom* _createNewObjectlistener = 
eventDispatcher->addCustomEventListener(Constants::MY_EVENT, 
std::bind(&MyClass::MyFunction, this, std::placeholders::_1));

It seems I create many different kinds of object listeners, where the only difference is the event, and the function being called. If I wanted to encapsulate the above code into a function:

  • How would I pass MyClass::MyFunction as an argument to the function ?
  • What would the function signature and parameters look like ?

I imagine the function would look something like this:

EventListenerCustom* MyFunc(<What Goes Here> functionToBeBound,<What goes here> object,std::string EVENT){
    EventListenerCustom* eventListener = eventDispatcher->addCustomEventListener(EVENT, std::bind(functionToBeBound, object, std::placeholders::_1));
    return eventListener;
}

What should the function look like ? And How do I call it? What would the calling code look like?

Aucun commentaire:

Enregistrer un commentaire