Я использую стороннюю библиотеку, которая передает указатели функций на вызов метода.
class RTSPClient{
public:
...
typedef void (responseHandler)(RTSPClient* rtspClient,
int resultCode, char* resultString);
...
unsigned sendOptionsCommand(responseHandler* responseHandler,
Authenticator* authenticator = NULL);
};
Нормальное использование выглядит следующим образом:
void continueAfterOPTIONS(RTSPClient* client,
int resultCode, char* resultString);
....
RTSPClient* pClient;
....
pClient->sendOptionsCommand(continueAfterOPTIONS, NULL);
Теперь я хотел бы сделатьМетод continueAfterOPTIONS - функция-член класса.Обычно я использую boost :: bind для этого:
pRtspClient>sendOptionsCommand(boost::bind(&RtspClientSessionManager::continueAfterOPTIONS, this), NULL);
, что приводит к
error C2664: 'RTSPClient::sendOptionsCommand' : cannot convert parameter 1 from 'boost::_bi::bind_t<R,F,L>' to 'RTSPClient::responseHandler (__cdecl *)'
Я пытался добавить заполнители для аргументов функции, и это не имело значения.Возможно ли то, что я пытаюсь сделать?Возможно, есть способ разыграть результат связывания?
Спасибо!