Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [R] sf::Thread entre deux classes  (Lu 2494 fois)

0 Membres et 1 Invité sur ce sujet

Sozary

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
    • E-mail
[R] sf::Thread entre deux classes
« le: Janvier 31, 2017, 05:34:06 pm »
Bonsoir,
J ai une classe A et une classe B, et je voudrais pouvoir lancer une méthode de la classe B en thread depuis la classe A.
Je fais donc:
class B{
public:
void function(int* i){};
}


class A{
A():m_thread(&B::function,nullptr)
{}

private:
sf::Thread m_thread;
}
 
Et le compilo me dit qu il n y a pas de "function" avec 1 argument...
Des idées?
Cordialement.
« Modifié: Janvier 31, 2017, 09:02:26 pm par Sozary »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : sf::Thread entre deux classes
« Réponse #1 le: Janvier 31, 2017, 05:38:13 pm »
Il te manque un paramètre, à savoir un B* (puisque la fonction est membre non-statique). Ou alors relis bien le tutoriel, c'est très bien expliqué.
Laurent Gomila - SFML developer

Sozary

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
    • E-mail
Re : sf::Thread entre deux classes
« Réponse #2 le: Janvier 31, 2017, 06:59:20 pm »
J'ai bien relu le tutoriel mais je n'ai pas trouvé ...
Je dois mettre mon B* dans la liste des arguments?

Cordialement

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : sf::Thread entre deux classes
« Réponse #3 le: Janvier 31, 2017, 08:00:55 pm »
Citer
J'ai bien relu le tutoriel mais je n'ai pas trouvé ...
Là :
Citation de: le tutoriel
- Fonction membre :

class MyClass
{
public:

    void func()
    {
    }
};

MyClass object;
sf::Thread thread(&MyClass::func, &object);

Citer
Je dois mettre mon B* dans la liste des arguments?
Si tu n'utilisais pas de thread il t'en faudrait un :
B b;
b.function(nullptr);
... donc oui, sf::Thread ne peut pas magiquement inventer un B ;)

Mais surtout sf::Thread ne gère pas les fonctions membres à un paramètre, comme indiqué dans le tutoriel et la documentation. Utilise std::thread, il n'y a aujourd'hui vraiment aucune raison de s'en passer.
Laurent Gomila - SFML developer

Sozary

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
    • E-mail
Re : sf::Thread entre deux classes
« Réponse #4 le: Janvier 31, 2017, 09:02:03 pm »
Ah c'est donc ça!
Merci ça deviens plus clair!
Merci pour vos réponses  :).

Cordialement