IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Boost C++ Discussion :

Bind d'une méthode template privée


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut Bind d'une méthode template privée
    Bonjour,

    Je cherche à lancer un thread d'une méthode de la classe appelante, privée (mais cela devrait marcher ?!) mais surtout template.

    Je ne vois pas comment appeler boost::bind, et j'ai beau chercher, je n'ai pas de réponses. Voilà l'état actuel des choses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class CSV_reader {
            template <class Translator>
            void read(std::vector<Translator> &translators)
     
            //...
     
            public:
     
            template <class Translator>
            void run(std::vector<Translator> &translators) {
                if(m_csv.good()) {
                    m_thread = new boost::thread(boost::bind(&CSV_reader::read<Translator>, *this, translators));
                }
            }
            //...
    };
    Merci d'avance.

    Cordialement,

    Kidpaddle2.

    P.S: Le translator est une classe qui traduit une ligne brute en données exploitables, elle est donc définie par l'utilisateur du fichier. J'aimerais garder l'idée de traduction, pour séparer lecture d'interprétation, mais je ne suis pas vraiment satisfait de ma méthode. Peut-être que des experts de Boost, qui est la bibliothèque qui selon moi est la mieux pensée, auraient une meilleure idée ? Ou d'amélioration justement en utilisant boost ? Merci.

  2. #2
    Membre expérimenté Avatar de Nogane
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 241
    Par défaut
    Bonjour,
    Tout d'abord, il faut penser a passer 'translators' et this par référence, de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    boost::bind(&CSV_reader::read<Translator>, ref(*this), ref(translators))
    A part ca, je vois pas vraiment le problème. Quel est le message d'erreur?

  3. #3
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Merci, ça marche =) Je pensais que c'était automatique côté utilisateur, comme le passage par référence standard...

    Résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/11/2010, 14h15
  2. Réponses: 1
    Dernier message: 09/04/2010, 11h15
  3. Binding vers une méthode
    Par Pragmateek dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 26/08/2009, 17h54
  4. [template][surcharge] surchage d'une méthode template
    Par méphistopheles dans le forum Langage
    Réponses: 5
    Dernier message: 21/03/2009, 15h22
  5. Appeler une méthode template d'un paramètre template
    Par YéTeeh dans le forum Langage
    Réponses: 2
    Dernier message: 26/08/2006, 12h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo