Создание обёртки шаблона для std :: bind - PullRequest
1 голос
/ 16 июня 2019

Я пытаюсь создать простую функцию-обертку для std :: bind, которая будет принимать функцию-член.

template<typename T, typename F>
void myBindFunction(T &t)
{
   std::bind(T::F, t );
}

MyClass a = MyClass();
myBindFunction <MyClass, &MyClass::m_Function>( a );

Я не уверен, что то, что я пытаюсь достичь, возможно?

1 Ответ

1 голос
/ 16 июня 2019

2-й параметр шаблона можно сделать нетиповым параметром шаблона , то есть указателем на функцию-член.

template<typename T, void(T::*F)()>
void myBindFunction(T &t)
{
   std::bind(F, t); // bind the member function pointer with the object t
}

LIVE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...