Bonjour,
soit le code suivant
la classe CHandlers sert d'interface avec une bibliotheque de lecture XML (expat).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); };
Je souhaite faire 'pointer' m_Func sur une methode d'une classe, par exemple A::do ci-dessous.
pour ca,je pense utiliser boost::bind, quelque chose qui ressemblerait a
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 }; };
mais je bloque sur la facon de dire au compilo que le foncteur prend 2 parametres...
Code : Sélectionner tout - Visualiser dans une fenêtre à part GetHandlers().m_Func=boost:bind(&A::do,this,_1)
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
Partager