Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Specula

Pages: [1]
1
Système / Re : Thread et adressage d'un pointeur sur membre
« le: Septembre 06, 2013, 06:54:55 pm »
Merci! Ça marche !
Mais, en fait, pourquoi a-t-il besoin du pointeur this ?

2
Système / Thread et adressage d'un pointeur sur membre
« le: Septembre 06, 2013, 05:05:25 pm »
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

Pages: [1]
anything