Bonjour,

soit le code suivant

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);
};
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 : 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
		};		
};
pour ca,je pense utiliser boost::bind, quelque chose qui ressemblerait a
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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