binder une methode avec des parametres
Bonjour,
soit le code suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| class CHandlers
{
public :
CHandlers () {};
typedef boost::function<void (const char *, const char *)> TProto;
TProto m_Func;
static void Callback(void *p_pData, const char *p_pP1, const char *p_pP2) {
CHandlers *l_pThis=(CHandlers *)(p_pData);
if (l_pThis) l_pThis->m_Func(p_pP1,p_pP2);
}; |
la classe CHandlers sert d'interface avec une bibliotheque de lecture XML (expat).
Je souhaite faire 'pointer' m_Func sur une methode d'une classe, par exemple A::do ci-dessous.
Code:
1 2 3 4 5 6 7 8 9
| class A
{
public :
A() {};
void do(const char *p_pP1,const char *p_pP2) {
// do something with parameters
};
}; |
pour ca,je pense utiliser boost::bind, quelque chose qui ressemblerait a
Code:
GetHandlers().m_Func=boost:bind(&A::do,this,_1)
mais je bloque sur la facon de dire au compilo que le foncteur prend 2 parametres...
et j'avoue que la doc de boost::bind ne m'aide pas beaucoup pour ce point
quelqu'un peut-il m'indiquer comment faire et me donner une explication
merci
V