Bonjour,

J'ai une classe A contenant une fonction membre f() que je souhaiterais appeler dans un boost::thread, et une callback() (également fonction membre de A) que je souhaiterais passer en attribut à f(). Mon appel se fait depuis la classe A.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
void A::callback()
{
   std::cout << "test";
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
void A::f(std::function<void()> refCallback)
{
   // fait des trucs
   refCallback();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
std::function<void()> f1 = boost::bind(&A::f, this);
boost::thread t = boost::thread(boost::bind(&A::f, this), f1);
Le compilateur me renvoit l'erreur suivante :
boost/bind/mem_fn.hpp(342): error C2298: 'return'*: opération non conforme sur pointeur vers expression de fonction membre
Savez-vous ce que j'ai mal fait dans mon code ?

Merci beaucoup