Bonjour,
Cela fait quelques jours que je me suis mis à utiliser des thread pour diverses raisons et, aujourd'hui, je suis tombé sur une erreur incompréhensible pour moi.
Voici l'erreur donné par mon compilateur :
C:\SFML-2.1\include\SFML\System\Thread.inl|39|error: must use '.*' or '->*' to call pointer-to-member function in
'((sf::priv::ThreadFunctor<void (A::*)()>*)this)->sf::priv::ThreadFunctor<void (A::*)()>::m_functor (...)',
e.g. '(... ->* ((sf::priv::ThreadFunctor<void (A::*)()>*)this)->sf::priv::ThreadFunctor<void (A::*)()>::m_functor) (...)'|
Malgré une recherche sur internet sur l'opération ".*" et sa signification, je ne comprends toujours pas l'erreur. (Le numero de ligne me donne l'accolade de fin du main.)
Voici le code minimale reproduisant l'erreur :
#include <SFML/System.hpp>
#include <iostream>
#include <string>
class A
{
public :
A()
{
myTh = new sf::Thread(&A::Fct);
mot = "test";
}
void Launch()
{
myTh->launch();
myTh->wait();
}
~A()
{
delete myTh;
}
private :
void Fct()
{
std::cout << mot.size();
}
sf::Thread* myTh;
std::string mot;
};
int main()
{
A a;
a.Launch();
return 0;
}
Merci d'avance